| name: Build and test using platformio |
| |
| on: |
| workflow_dispatch: |
| workflow_call: |
| push: |
| paths: |
| - '**platformio**' |
| pull_request: |
| paths: |
| - '**platformio**' |
| |
| jobs: |
| platformio: |
| name: Build and run PlatformIO example |
| runs-on: ubuntu-latest |
| steps: |
| - name: Check out code from GitHub |
| uses: actions/checkout@v4 |
| with: |
| path: nanopb |
| |
| - name: Installing dependencies for local act |
| if: ${{ env.ACT }} |
| run: | |
| sudo apt update |
| |
| - name: Installing common dependencies |
| run: | |
| sudo apt install -y python3-pip |
| |
| - name: Install and setup PlatformIO |
| run: | |
| pip3 install -U platformio |
| export PATH=~/.local/bin:$PATH |
| |
| - name: Build PlatformIO package |
| run: | |
| cd nanopb |
| pio package pack |
| |
| - name: Example - Extract PlatformIO package to example dir |
| run: | |
| cp -R nanopb/examples/platformio example |
| mkdir -p example/lib/nanopb |
| tar -xzf nanopb/Nanopb-*.tar.gz -C example/lib/nanopb |
| |
| - name: Example - Build |
| run: | |
| cd example |
| pio run |
| |
| - name: Example - Run test without options |
| run: example/.pio/build/pio_without_options/program |
| |
| - name: Example - Run test with options |
| run: example/.pio/build/pio_with_options/program |
| |
| - name: Build in subdirectory with space characters |
| run: | |
| cp -R nanopb/examples/platformio "example with spaces" |
| mkdir -p "example with spaces/lib/nanopb" |
| tar -xzf nanopb/Nanopb-*.tar.gz -C "example with spaces/lib/nanopb" |
| cd "example with spaces" |
| pio run -e pio_with_options # ESP32 platform doesn't support spaces currently |
| |
| - name: Build with default platformio.ini |
| run: | |
| mkdir -p test_default_pio_conf |
| cd test_default_pio_conf |
| pio project init |
| ln -s ../nanopb lib/nanopb |
| echo "[env:native]" >> platformio.ini |
| echo "platform = native" >> platformio.ini |
| echo "lib_deps = Nanopb" >> platformio.ini |
| echo "int main(int argc, char *argv[]){}" > src/main.cpp |
| pio run |