on: [push, pull_request] jobs: compile: strategy: fail-fast: false matrix: example: - "BASIC" - "DiyProIndoorV4_2" - "DiyProIndoorV3_3" - "TestCO2" - "TestPM" - "TestSht" - "OneOpenAir" fqbn: - "esp8266:esp8266:d1_mini" - "esp32:esp32:esp32c3" include: - fqbn: "esp8266:esp8266:d1_mini" core: "esp8266:esp8266" core_version: "3.1.2" core_url: "https://arduino.esp8266.com/stable/package_esp8266com_index.json" - fqbn: "esp32:esp32:esp32c3" core: "esp32:esp32" core_version: "2.0.17" core_url: "https://espressif.github.io/arduino-esp32/package_esp32_index.json" board_options: "JTAGAdapter=default,CDCOnBoot=cdc,PartitionScheme=min_spiffs,CPUFreq=160,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=verbose,EraseFlash=none" exclude: - example: "BASIC" fqbn: "esp32:esp32:esp32c3" - example: "DiyProIndoorV4_2" fqbn: "esp32:esp32:esp32c3" - example: "DiyProIndoorV3_3" fqbn: "esp32:esp32:esp32c3" - example: "OneOpenAir" fqbn: "esp8266:esp8266:d1_mini" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4.2.2 with: fetch-depth: 0 submodules: 'true' - uses: arduino/compile-sketches@v1.1.2 with: fqbn: ${{ matrix.fqbn }} sketch-paths: | examples/${{ matrix.example }} libraries: | - source-path: ./ cli-compile-flags: | - --warnings - none - --board-options - "${{ matrix.board_options }}" platforms: | - name: ${{ matrix.core }} version: ${{ matrix.core_version}} source-url: ${{ matrix.core_url }} enable-deltas-report: true # TODO: at this point it would be a good idea to run some smoke tests on # the resulting image (e.g. that it boots successfully and sends metrics) # but that would either require a high fidelity device emulator, or a # "hardware lab" runner that is directly connected to a relevant device.