name: Arduino Library CI on: push: paths-ignore: - "**/**.md" - "/keywords.txt" - "/library.json" - "/library.properties" - "/vue-frontend" - "/docs" pull_request: paths-ignore: - "**/**.md" - "/keywords.txt" - "/library.json" - "/library.properties" - "/vue-frontend" - "/docs" jobs: arduino: name: arduino ${{ matrix.name }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: package_esp32_index.json core: esp32:esp32 board: esp32:esp32:esp32 index_url: https://espressif.github.io/arduino-esp32/package_esp32_index.json - name: package_esp32_dev_index.json core: esp32:esp32 board: esp32:esp32:esp32 index_url: https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json - name: package_esp8266com_index.json core: esp8266:esp8266 board: esp8266:esp8266:huzzah index_url: https://arduino.esp8266.com/stable/package_esp8266com_index.json steps: - name: Checkout uses: actions/checkout@v4 - name: Arduino Lint uses: arduino/arduino-lint-action@v1 with: library-manager: update - name: Install arduino-cli run: curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/local/bin sh - name: Update core index run: arduino-cli core update-index --additional-urls "${{ matrix.index_url }}" - name: Install core run: arduino-cli core install --additional-urls "${{ matrix.index_url }}" ${{ matrix.core }} - name: Install AsyncTCP run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/AsyncTCP#v3.1.4 - name: Install ESPAsyncTCP run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/esphome-ESPAsyncTCP#v2.0.0 - name: Install ESPAsyncWebServer run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/ESPAsyncWebServer#v2.10.4 - name: Build Demo run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Demo/Demo.ino" - name: Build Demo_AP run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Demo_AP/Demo_AP.ino" - name: Build Logging run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Logging/Logging.ino" - name: Build HighPerf run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/HighPerf/HighPerf.ino" platformio: name: pio ${{ matrix.name }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: esp32dev|arduino board: esp32dev platform: espressif32 opts: - name: esp32dev|arduino-2 board: esp32dev platform: espressif32@6.7.0 opts: - name: esp32dev|arduino-3 board: esp32dev platform: espressif32 opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.0/esp32-arduino-libs-3.0.0.zip'" - name: esp32-s3-devkitc-1|arduino board: esp32-s3-devkitc-1 platform: espressif32 opts: - name: esp32-s3-devkitc-1|arduino-2 board: esp32-s3-devkitc-1 platform: espressif32@6.7.0 opts: - name: esp32-s3-devkitc-1|arduino-3 board: esp32-s3-devkitc-1 platform: espressif32 opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.0/esp32-arduino-libs-3.0.0.zip'" - name: huzzah|espressif8266 board: huzzah platform: espressif8266 opts: steps: - uses: actions/checkout@v4 - name: Set up cache uses: actions/cache@v4 with: path: | ~/.platformio ~/.cache/pip key: ${{ matrix.name }} - uses: actions/setup-python@v5 with: python-version: "3.x" - run: pip install platformio - run: platformio platform install ${{ matrix.platform }} - run: platformio ci "examples/Demo/Demo.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: platformio ci "examples/Demo_AP/Demo_AP.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: platformio ci "examples/Logging/Logging.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: platformio ci "examples/HighPerf/HighPerf.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" platformio ci "examples/Demo/Demo.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" platformio ci "examples/Demo_AP/Demo_AP.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" platformio ci "examples/Logging/Logging.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" platformio ci "examples/HighPerf/HighPerf.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }}