diff --git a/.github/workflows/0build.yml b/.github/workflows/0build.yml new file mode 100644 index 00000000..1bd140be --- /dev/null +++ b/.github/workflows/0build.yml @@ -0,0 +1,252 @@ +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 + + deploy: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + include: + - os: ubuntu-latest + path: ~/.cache/pip + platformio-path: ~/.platformio + board: [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_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: Build and deploy for ${{ matrix.board }} + env: + CI_HALFILE: ${{ matrix.board }} + PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_AUTH_TOKEN }} + run: pio remote -a prenzlpi run -e cd -t upload -r \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f9bccbd..6f04830f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: PlatformIO CI +name: PlatformIO CI/CD on: pull_request: @@ -20,190 +20,8 @@ on: 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 - + deploy: - strategy: fail-fast: false matrix: