name: Build Examples with PlatformIO # Triggers the workflow on push or pull request events on: [push, pull_request] jobs: build: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, 'ci skip')" 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, ] steps: - uses: actions/checkout@v3 - name: Set variables run: | if [[ -z "${GITHUB_HEAD_REF}" ]]; then echo "::debug::Push to commit ${GITHUB_SHA}" echo "LIBRARY_INSTALL_SOURCE=https://github.com/${GITHUB_REPOSITORY}.git#${GITHUB_SHA}" >> $GITHUB_ENV else echo "::debug::Pull Request from the ${GITHUB_HEAD_REF} branch" echo "LIBRARY_INSTALL_SOURCE=https://github.com/${GITHUB_REPOSITORY}.git#${GITHUB_HEAD_REF}" >> $GITHUB_ENV fi - name: Set up Python uses: actions/setup-python@v4 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@v3.3.2 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 env: PLATFORMIO_CI_SRC: ${{ matrix.example }} TINYGSM_MODEM_TO_USE: ${{ matrix.modem }} run: | echo "${{ env.LIBRARY_INSTALL_SOURCE }}" pio lib --global install ${{ env.LIBRARY_INSTALL_SOURCE }} sed -i 's/\/\/ #define TINY_GSM_MODEM_SIM800/#define TINY_GSM_MODEM_SIM800/g' ${{ matrix.example }}/* platformio ci --project-option='build_flags=-D ${{ env.TINYGSM_MODEM_TO_USE }}' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev pio lib --global uninstall TinyGSM