Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 53 additions & 35 deletions .github/workflows/pr-or-master-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,69 +18,87 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
chunk: [0, 1, 2, 3, 4]
shift: [1-, 2-, 3-, 4-, 5-]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build Sketches
env:
TRAVIS_BUILD_DIR: ${{ github.workspace }}
TRAVIS_TAG: ${{ github.ref }}
BUILD_TYPE: build_rp2040
BUILD_MOD: 5
BUILD_REM: ${{ matrix.chunk }}
- name: Install Arduino-CLI, RP2040 core, this library
run: |
bash ./tests/common.sh
wget --quiet https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz
tar xf arduino-cli_nightly-latest_Linux_64bit.tar.gz
./arduino-cli config init
./arduino-cli config add board_manager.additional_urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
./arduino-cli config set library.enable_unsafe_install true
./arduino-cli core update-index
./arduino-cli core install rp2040:rp2040
mkdir -p ~/Arduino/libraries
cp -a /home/runner/work/ESP8266Audio/ESP8266Audio ~/Arduino/libraries/.
- name: Build examples RP2040
run: |
./tests/build-ci.sh rp2040 ${{matrix.shift}} "rp2040:rp2040:rpipicow:flash=2097152_262144,freq=200,opt=Small,os=none,profile=Disabled,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=picosdk,wificountry=worldwide,ipbtstack=ipv4only,uploadmethod=default"

build-esp8266:
name: Build ESP8266
name: Build all examples on Arduino-ESP8266 latest release
runs-on: ubuntu-latest
strategy:
matrix:
chunk: [0, 1, 2, 3, 4]
shift: [1-, 2-, 3-, 4-, 5-]
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build Sketches
env:
TRAVIS_BUILD_DIR: ${{ github.workspace }}
TRAVIS_TAG: ${{ github.ref }}
BUILD_TYPE: build
BUILD_MOD: 5
BUILD_REM: ${{ matrix.chunk }}
- name: Install Arduino-CLI, ESP8266 core, this library
run: |
wget --quiet https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz
tar xf arduino-cli_nightly-latest_Linux_64bit.tar.gz
./arduino-cli config init
mkdir -p ~/Arduino/libraries
cp -a /home/runner/work/ESP8266Audio/ESP8266Audio ~/Arduino/libraries/.
mkdir -p ~/Arduino/hardware/esp8266com
cd ~/Arduino/hardware/esp8266com
git clone https://github.com/esp8266/Arduino.git esp8266
cd esp8266
git submodule update --init --recursive
cd tools
./get.py -q
- name: Build examples ESP8266
run: |
bash ./tests/common.sh
./tests/build-ci.sh esp8266 ${{matrix.shift}} "esp8266com:esp8266:d1_mini:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,optim=Smallest,wipe=none,baud=921600,iramfloat=no"

build-esp32:
name: Build ESP-32
name: Build all examples on Arduino-ESP32 latest release
runs-on: ubuntu-latest
strategy:
matrix:
chunk: [0, 1, 2, 3, 4]
shift: [1-, 2-, 3-, 4-, 5-]
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build Sketches
env:
TRAVIS_BUILD_DIR: ${{ github.workspace }}
TRAVIS_TAG: ${{ github.ref }}
BUILD_TYPE: build_esp32
BUILD_MOD: 5
BUILD_REM: ${{ matrix.chunk }}
- name: Install Arduino-CLI, ESP32 core, this library
run: |
wget --quiet https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz
tar xf arduino-cli_nightly-latest_Linux_64bit.tar.gz
./arduino-cli config init
./arduino-cli config add board_manager.additional_urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
./arduino-cli config set library.enable_unsafe_install true
./arduino-cli core update-index
./arduino-cli core install esp32:esp32
mkdir -p ~/Arduino/libraries
cp -a /home/runner/work/ESP8266Audio/ESP8266Audio ~/Arduino/libraries/.
- name: Build examples ESP32C6
run: |
bash ./tests/common.sh
./tests/build-ci.sh esp32c6 ${{matrix.shift}} "esp32:esp32:esp32c6:PartitionScheme=huge_app"

# Run host test suite under valgrind for runtime checking of code.
host-tests:
Expand Down
29 changes: 29 additions & 0 deletions tests/build-ci.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

set -e
set -o pipefail

outdir=$1; shift
offset=$1; shift
fqbn=$1; shift

mkdir $outdir
rm -f *.elf

# Get initial list and shift off to the starting point
sketches=$(find ~/Arduino/libraries/ESP8266Audio/examples -name "*.ino" | sort | tr '\n' ' ' | cut -f$offset -d " ")

# Iterate over sketches
while [ $(echo $sketches | wc -w) -gt 0 ]; do
sketch=$(echo $sketches | cut -f1 -d " ")
echo "::group::Compiling $(basename $sketch) for $fqbn into $outdir"
./arduino-cli compile -b "$fqbn" -v --warnings all --build-path "$outdir" "$sketch" || exit 255
mv -f "$outdir"/*.elf .
echo "::endgroup::"
# Shift out 5
sketches=$(echo $sketches | cut -f6- -d " ")
done

echo "::group::Final Sizes"
size ./*.elf
echo "::endgroup::"
Loading