name: Build on: [push, pull_request] jobs: build: name: ${{ matrix.template }} ${{ matrix.environment.name }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: template: [basic, basic-osc, ble-advertising, libmapper-osc] environment: - name: Xiao board: seeed_xiao_esp32c3 extra_flags: "" - name: tinypico board: tinypico extra_flags: "-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue" - name: m5stick-c board: m5stick-c extra_flags: "-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue" - name: ESP32-S3 board: esp32-c3-devkitc-02 extra_flags: "-DBOARD_HAS_PSRAM" steps: - uses: actions/checkout@v4 - uses: actions/cache@v4 with: path: | ~/.cache/pip ~/.platformio/.cache key: ${{ runner.os }}-pio - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install PlatformIO Core run: pip install --upgrade platformio - name: Create Temporary platformio.ini run: | echo "[platformio]" > ./${{ matrix.template }}/platformioTemp.ini echo "[env:${{ matrix.environment.name }}]" >> ./${{ matrix.template }}/platformioTemp.ini echo "platform = espressif32" >> ./${{ matrix.template }}/platformioTemp.ini echo "board = ${{ matrix.environment.board }}" >> ./${{ matrix.template }}/platformioTemp.ini echo "framework = arduino" >> ./${{ matrix.template }}/platformioTemp.ini echo "board_build.partitions = min_spiffs_no_OTA.csv" >> ./${{ matrix.template }}/platformioTemp.ini echo "lib_deps =" >> ./${{ matrix.template }}/platformioTemp.ini echo " https://github.com/Puara/puara-module.git" >> ./${{ matrix.template }}/platformioTemp.ini echo " https://github.com/cnmat/OSC#3.5.8" >> ./${{ matrix.template }}/platformioTemp.ini echo "monitor_speed = 115200" >> ./${{ matrix.template }}/platformioTemp.ini echo "monitor_echo = yes" >> ./${{ matrix.template }}/platformioTemp.ini echo "monitor_filters = default,esp32_exception_decoder" >> ./${{ matrix.template }}/platformioTemp.ini echo "build_flags = -std=gnu++2a ${{ matrix.environment.extra_flags }}" >> ./${{ matrix.template }}/platformioTemp.ini echo "build_unflags = -std=gnu++11 -std=gnu++14 -std=gnu++17" >> ./${{ matrix.template }}/platformioTemp.ini - name: Verify File Creation run: | ls -al ls -al ./basic # List files to ensure platformioTemp.ini exists - name: Build run: | cd ./${{ matrix.template }} pio settings set force_verbose 1 pio run --environment ${{ matrix.environment.name }} --project-conf platformioTemp.ini - name: Simulate and test with Wokwi if: ${{ matrix.environment.name == 'ESP32-S3' }} uses: wokwi/wokwi-ci-action@v1 with: token: ${{ secrets.WOKWI_CLI_TOKEN }} path: ./${{ matrix.template }}/ # directory with wokwi.toml, relative to repo's root timeout: 30000 expect_text: 'Puara Start Done!'