name: PlatformIO CI on: push: paths: - 'firmware/**' - 'proto/**' - 'thirdparty/nanopb/**' - 'platformio.ini' - '.github/workflows/pio.yml' pull_request: paths: - 'firmware/**' - 'proto/**' - 'thirdparty/nanopb/**' - 'platformio.ini' - '.github/workflows/pio.yml' jobs: pio-build: runs-on: ubuntu-20.04 steps: - name: Checkout code uses: actions/checkout@v2 - name: Cache pip uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Cache PlatformIO uses: actions/cache@v2 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python uses: actions/setup-python@v2 - name: Install PlatformIO id: pio_install run: | python -m pip install --upgrade pip pip install --upgrade platformio - name: Build Firmware (view) # Run regardless of other build step failures, as long as setup steps completed if: always() && steps.pio_install.outcome == 'success' run: | pio run \ -e view - name: Build Firmware (nanofoc) # Run regardless of other build step failures, as long as setup steps completed if: always() && steps.pio_install.outcome == 'success' run: | pio run \ -e nanofoc