Skip to content
name: Build Examples with PlatformIO
# Triggers the workflow on push or pull request events
on: [push, pull_request, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
example:
[
examples/BlynkClient,
examples/FileDownload,
examples/MqttClient,
examples/WebClient,
tools/test_build,
tools/Diagnostics,
]
modem: [
TINY_GSM_MODEM_A6,
TINY_GSM_MODEM_BG96,
TINY_GSM_MODEM_ESP8266,
TINY_GSM_MODEM_M95,
TINY_GSM_MODEM_M590,
TINY_GSM_MODEM_MC60,
TINY_GSM_MODEM_SIM800,
TINY_GSM_MODEM_SIM808,
TINY_GSM_MODEM_SIM5360,
TINY_GSM_MODEM_SIM7600,
TINY_GSM_MODEM_SIM7000,
TINY_GSM_MODEM_SIM7000SSL,
TINY_GSM_MODEM_SIM7070,
TINY_GSM_MODEM_UBLOX,
TINY_GSM_MODEM_SARAR4,
TINY_GSM_MODEM_XBEE,
TINY_GSM_MODEM_SEQUANS_MONARCH,
# added in this fork
TINY_GSM_MODEM_A7608,
TINY_GSM_MODEM_A7670,
TINY_GSM_MODEM_SIM7020,
TINY_GSM_MODEM_SIM7672,
]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
# This should be pulled from cache, if there's not a new version
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Restore or Cache Platforms and Libraries
uses: actions/cache@v4
id: cache_pio
with:
path: ~/.platformio
# if nothing in the example_dependencies.json file has changed, then it will
# be a "cache hit" and we can restore libraries from cache and not
# download them. If it has changed we have to re-download.
key: ${{ hashFiles('./examples/example_dependencies.json') }}
# Install cores and library dependencies for the Arduino CLI, iff no cache
- name: Install the Arduino libraries
if: steps.cache_pio.outputs.cache-hit != 'true'
run: pio lib --global install 89 415 1202 1286
- name: Run PlatformIO
run: |
pio lib --global uninstall TinyGSM
sed -i 's/\/\/ #define TINY_GSM_MODEM_SIM800/#define TINY_GSM_MODEM_SIM800/g' ${{ matrix.example }}/*
platformio ci ${{ matrix.example }} -l '.' - --project-option='build_flags=-D ${{ matrix.modem }}' --project-option='framework=arduino' --board=esp32dev --board=esp32s3box