name: PlatformIO CI on: pull_request: push: branches: - master workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] include: - os: ubuntu-latest path: ~/.cache/pip platformio-path: ~/.platformio - os: macos-latest path: ~/Library/Caches/pip platformio-path: ~/Library/Caches/platformio - os: windows-latest path: ~\AppData\Local\pip\Cache platformio-path: ~\AppData\Local\platformio\Cache board: [heltecv2.h,heltecv21.h,ttgov21new.h] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Cache pip uses: actions/cache@v3 with: path: ${{ matrix.path }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Cache PlatformIO uses: actions/cache@v3 with: path: ${{ matrix.platformio-path }} key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.9.13" - name: Install PlatformIO run: | python -m pip install --upgrade pip pip install --upgrade platformio - name: Copy of necessary files run: | cp platformio_orig.ini platformio.ini cp src/loraconf_sample.h src/loraconf.h cp src/ota_sample.conf src/ota.conf cp src/paxcounter_orig.conf src/paxcounter.conf - name: Clean run: pio run -t clean -e ci - name: Run PlatformIO Test env: CI_HALFILE: ${{ matrix.board }} run: pio run -e ci