Skip to content

move common settings into a single section #102

move common settings into a single section

move common settings into a single section #102

Workflow file for this run

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-C3
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 "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
# Define dependencies for each template
echo "lib_deps =" >> ./${{ matrix.template }}/platformioTemp.ini
if [[ "${{ matrix.template }}" == "basic" ]]; then
echo " https://github.com/Puara/puara-module.git" >> ./${{ matrix.template }}/platformioTemp.ini
elif [[ "${{ matrix.template }}" == "basic-osc" ]]; then
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
elif [[ "${{ matrix.template }}" == "ble-advertising" ]]; then
echo " https://github.com/Puara/puara-gestures.git" >> ./${{ matrix.template }}/platformioTemp.ini
echo " https://github.com/Puara/puara-module.git" >> ./${{ matrix.template }}/platformioTemp.ini
echo " arduino-libraries/ArduinoBLE" >> ./${{ matrix.template }}/platformioTemp.ini
echo " johboh/nlohmann-json@^3.11.3" >> ./${{ matrix.template }}/platformioTemp.ini
elif [[ "${{ matrix.template }}" == "libmapper-osc" ]]; then
echo " https://github.com/Puara/puara-gestures.git" >> ./${{ matrix.template }}/platformioTemp.ini
echo " https://github.com/mathiasbredholt/libmapper-arduino.git#v0.3" >> ./${{ matrix.template }}/platformioTemp.ini
echo " https://github.com/Puara/puara-module.git" >> ./${{ matrix.template }}/platformioTemp.ini
fi
# Print the contents of the platformioTemp.ini file
cat ./${{ matrix.template }}/platformioTemp.ini
- 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-C3' }}
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!'