name: PlatformIO CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: | ~/.cache/pip ~/.platformio/.cache key: ${{ runner.os }}-pio - uses: actions/setup-python@v4 with: python-version: '3.9' - name: Install PlatformIO Core run: pip install --upgrade platformio - name: Use sample "config.example.h" for compilations run: mv $GITHUB_WORKSPACE/config.example.h $GITHUB_WORKSPACE/config.h - name: Build PlatformIO Project run: pio run - name: Copy all firmwares for for packaging run: | mkdir downloads cd .pio/build find . -name '*.bin' | cpio -pdm ../../downloads find . -name '*.hex' | cpio -pdm ../../downloads find . -name '*.uf2' | cpio -pdm ../../downloads cd ../.. - name: Package and upload all firmwares for download uses: actions/upload-artifact@v3 with: name: all-firmwares-for-download path: downloads - name: Test on Arduino MEGA with Wokwi uses: wokwi/wokwi-ci-action@v1 with: token: ${{ secrets.WOKWI_CLI_TOKEN }} path: /wokwi/mega # directory with wokwi.toml, relative to repo's root timeout: 10000 expect_text: '<* LCD3:Free RAM=' fail_text: 'Error' # scenario: 'test-hello-world.yaml' # optional - name: Test on Arduino UNO with Wokwi uses: wokwi/wokwi-ci-action@v1 with: token: ${{ secrets.WOKWI_CLI_TOKEN }} path: /wokwi/uno # directory with wokwi.toml, relative to repo's root timeout: 10000 expect_text: '<* LCD3:Free RAM=' fail_text: 'Error' # scenario: 'test-hello-world.yaml' # optional - name: Test on Arduino NANO with Wokwi uses: wokwi/wokwi-ci-action@v1 with: token: ${{ secrets.WOKWI_CLI_TOKEN }} path: /wokwi/nano # directory with wokwi.toml, relative to repo's root timeout: 10000 expect_text: '<* LCD3:Free RAM=' fail_text: 'Error' # scenario: 'test-hello-world.yaml' # optional - name: Test on ESP32 with Wokwi uses: wokwi/wokwi-ci-action@v1 with: token: ${{ secrets.WOKWI_CLI_TOKEN }} path: /wokwi/esp32 # directory with wokwi.toml, relative to repo's root timeout: 10000 expect_text: 'ESP32 / STANDARD_MOTOR_SHIELD' fail_text: 'Error' # scenario: 'test-hello-world.yaml' # optional