diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a39a5c40..27e89881 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -88,15 +88,71 @@ jobs: 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] + 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 }}