Use buckets for mock elements + update override snapshot state #2851
Workflow file for this run
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: Build | |
| on: [push, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true # Cancel in-flight jobs for the same branch or PR | |
| jobs: | |
| formatting-check: | |
| name: Formatting Check | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.draft == false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run clang-format style check for C/C++ programs. | |
| uses: jidicula/clang-format-action@v4.13.0 | |
| with: | |
| clang-format-version: '20' | |
| check-path: '.' | |
| fallback-style: 'Google' | |
| compile-cli: | |
| name: Compile on ${{matrix.os}} | |
| needs: formatting-check | |
| runs-on: ${{matrix.os}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04, macos-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Create build folder | |
| run: mkdir build-emu | |
| - name: Build WARDuino CLI | |
| run: cmake .. -D BUILD_EMULATOR=ON ; cmake --build . | |
| working-directory: build-emu | |
| compile-with-arduino: | |
| name: (Arduino) Compile on ${{matrix.board.platform-name}} | |
| needs: [formatting-check] | |
| runs-on: ubuntu-latest | |
| env: | |
| SKETCHES_REPORTS_PATH: sketches-reports | |
| SKETCHES_REPORTS_ARTIFACT_NAME: sketches-reports | |
| LIBRARIES: | | |
| - source-path: ./ | |
| - name: WiFi | |
| - name: HTTPClient | |
| - name: PubSubClient | |
| - name: Adafruit NeoPixel | |
| - source-url: https://github.com/me-no-dev/AsyncTCP.git | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| board: | |
| - fqbn: 'esp32:esp32:esp32' | |
| platform-name: esp32:esp32 | |
| include: | |
| - board: | |
| platform-name: esp32:esp32 | |
| platforms: | | |
| # Install ESP32 platform via Boards Manager | |
| - name: esp32:esp32 | |
| source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json | |
| sketches: | | |
| - tests/compilation/esp32/esp32.ino | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Compile sketches | |
| uses: arduino/compile-sketches@v1 | |
| with: | |
| platforms: ${{ matrix.platforms }} | |
| fqbn: ${{ matrix.board.fqbn }} | |
| sketch-paths: | | |
| ${{ matrix.sketches }} | |
| libraries: | | |
| ${{ env.LIBRARIES }} | |
| enable-deltas-report: true | |
| sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} | |
| - name: Upload sketches report to workflow artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.SKETCHES_REPORTS_ARTIFACT_NAME }} | |
| path: ${{ env.SKETCHES_REPORTS_PATH }} | |
| compile-with-idf: | |
| name: (ESP-IDF) Compile on ${{matrix.board.platform-name}} | |
| needs: formatting-check | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| board: | |
| - fqbn: 'esp32:esp32:esp32' | |
| platform-name: esp32:esp32 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Build WARDuino for ESP-IDF | |
| uses: espressif/esp-idf-ci-action@v1 | |
| with: | |
| esp_idf_version: v5.2 | |
| target: esp32 | |
| command: idf.py build -DBUILD_ESP=ON | |
| path: . | |
| build-zephyr: | |
| name: (Zephyr) Compile for ESP32 | |
| needs: formatting-check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install --no-install-recommends git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 | |
| sudo apt install xxd | |
| - name: Install Zephyr | |
| working-directory: ${{ github.workspace }} | |
| run: | | |
| python3 -m venv zephyrproject/.venv | |
| source zephyrproject/.venv/bin/activate | |
| pip install west | |
| mkdir -p zephyrproject | |
| cd zephyrproject | |
| west init | |
| west update | |
| west zephyr-export | |
| west packages pip --install | |
| cd zephyr | |
| west sdk install | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| path: zephyrproject/WARDuino | |
| submodules: 'recursive' | |
| - name: Setup upload.wasm | |
| working-directory: ${{ github.workspace }}/zephyrproject/WARDuino | |
| run: | | |
| cp tests/compilation/esp32/upload.wasm platforms/Zephyr/upload.wasm | |
| - name: Build ESP32 target | |
| working-directory: ${{ github.workspace }}/zephyrproject/WARDuino | |
| run: | | |
| source ../.venv/bin/activate | |
| cd platforms/Zephyr | |
| west build -b esp32_devkitc_wroom/esp32/procpu |