This repository was archived by the owner on Aug 3, 2026. It is now read-only.
ci.yml now pins PIOArduino Core to v6.1.19, replaces deprecated pio p… #44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| tags: ['v*'] | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| source-audit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Audit production sources | |
| run: | | |
| if rg -n '\bthrow\b|std::abort\(' src; then | |
| echo "Embedded safety audit failed" | |
| exit 1 | |
| fi | |
| build-examples: | |
| runs-on: ubuntu-latest | |
| needs: source-audit | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| board: [esp32dev, esp32-s3-devkitc-1, esp32-c3-devkitm-1, esp32-p4-evboard] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Cache PlatformIO | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.platformio | |
| key: ${{ runner.os }}-platformio-pioarduino-6.1.19-${{ hashFiles('**/library.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-platformio-pioarduino-6.1.19- | |
| - name: Install PIOArduino Core | |
| run: python -m pip install --upgrade https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.19.zip | |
| - name: Install PIOArduino ESP32 Platform | |
| run: pio pkg install -g -p https://github.com/pioarduino/platform-espressif32.git | |
| - name: Build library examples (ESP32 Arduino) | |
| run: | | |
| set -e | |
| for d in examples/*; do | |
| if [ -d "$d" ]; then | |
| echo "Building $d on ${{ matrix.board }} via PlatformIO CI" | |
| # Force C++17 for this project to satisfy library requirements | |
| pio ci "$d" \ | |
| --board ${{ matrix.board }} \ | |
| --lib="." \ | |
| --project-option "platform=https://github.com/pioarduino/platform-espressif32.git" \ | |
| --project-option "build_unflags=-std=gnu++11" \ | |
| --project-option "build_flags=-std=gnu++17" | |
| fi | |
| done | |
| arduino-cli: | |
| runs-on: ubuntu-latest | |
| needs: source-audit | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| board: | |
| - fqbn: esp32:esp32:esp32 | |
| name: esp32dev | |
| - fqbn: esp32:esp32:esp32s3 | |
| name: esp32-s3-devkitc-1 | |
| - fqbn: esp32:esp32:esp32c3 | |
| name: esp32-c3-devkitm-1 | |
| - fqbn: esp32:esp32:esp32p4 | |
| name: esp32-p4-evboard | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Arduino CLI | |
| uses: arduino/setup-arduino-cli@v1 | |
| - name: Install ESP32 core | |
| run: | | |
| arduino-cli core update-index | |
| arduino-cli core install esp32:esp32 | |
| - name: Install libraries | |
| run: | | |
| arduino-cli lib update-index | |
| if [ ! -d "${HOME}/Arduino/libraries/ESPBufferManager" ]; then | |
| arduino-cli lib install --git-url https://github.com/ESPToolKit/esp-buffer-manager.git || \ | |
| git clone --depth 1 https://github.com/ESPToolKit/esp-buffer-manager.git "${HOME}/Arduino/libraries/ESPBufferManager" | |
| fi | |
| if [ ! -d "${HOME}/Arduino/libraries/ESPWorker" ]; then | |
| arduino-cli lib install --git-url https://github.com/ESPToolKit/esp-worker.git || \ | |
| git clone --depth 1 https://github.com/ESPToolKit/esp-worker.git "${HOME}/Arduino/libraries/ESPWorker" | |
| fi | |
| - name: Add local library to sketchbook | |
| run: | | |
| set -e | |
| SKETCHBOOK_DIR="${HOME}/Arduino" | |
| mkdir -p "$SKETCHBOOK_DIR/libraries/ESPTimer" | |
| rsync -a --delete --exclude ".git" ./ "$SKETCHBOOK_DIR/libraries/ESPTimer/" | |
| - name: Build examples (${{ matrix.board.name }}) | |
| env: | |
| FQBN: ${{ matrix.board.fqbn }} | |
| run: | | |
| set -e | |
| for d in examples/*; do | |
| if [ -d "$d" ]; then | |
| echo "Compiling $d" | |
| arduino-cli compile --fqbn "$FQBN" "$d" | |
| fi | |
| done |