name: PlatformIO CI on: pull_request: paths-ignore: - 'docs/**' - 'mkdocs.yml' - 'LICENSE' - 'README.md' push: branches: - master - build-workflow paths-ignore: - 'docs/**' - 'mkdocs.yml' - 'LICENSE' - 'README.md' workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest] include: - os: ubuntu-latest path: ~/.cache/pip platformio-path: ~/.platformio board: [ generic.h, ebox.h, eboxtube.h, ecopower.h, heltec.h, heltecv2.h, heltecv21.h, ttgov1.h, ttgov2.h, ttgov21old.h, ttgov21new.h, ttgofox.h, ttgobeam.h, ttgobeam10.h, ttgotdisplay.h, ttgotwristband.h, fipy.h, lopy.h, lopy4.h, lolin32litelora.h, lolin32lora.h, lolin32lite.h, wemos32oled.h, wemos32matrix.h, octopus32.h, tinypico.h, tinypicomatrix.h, m5core.h, m5fire.h, olimexpoeiso.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 CI for ${{ matrix.board }} env: CI_HALFILE: ${{ matrix.board }} run: pio run -e ci build-windows-macos: strategy: fail-fast: false matrix: os: [windows-latest, macos-latest] include: - 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: [generic.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 CI for ${{ matrix.board }} env: CI_HALFILE: ${{ matrix.board }} run: pio run -e ci build-s3-usb-stick: 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: [ttgotdongles3.h, ttgotdongledisplays3.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_s3.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 CI for ${{ matrix.board }} env: CI_HALFILE: ${{ matrix.board }} run: pio run -e ci