1.2.8 #94
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ArduinoBuild | |
on: | |
push: | |
paths: | |
- '**.ino' | |
- '**.cpp' | |
- '**.hpp' | |
- '**.h' | |
- '**.c' | |
- '**ArduinoBuild.yml' | |
pull_request: | |
release: | |
types: [published] | |
jobs: | |
matrix_build: | |
name: ${{ matrix.matrix-context }}@${{ matrix.sdk-version }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
sdk-version: | |
#- 1.0.6 | |
#- 2.0.0 | |
#- 2.0.1 | |
# - 2.0.2 # has broken SD Support | |
#- 2.0.3 | |
#- 2.0.4 | |
#- 2.0.5 | |
#- 2.0.6 | |
# - 2.0.7 | |
# - 2.0.8 | |
# - 2.0.9 | |
- 2.0.11 | |
- 2.0.12 | |
- 2.0.13 | |
matrix-context: | |
- M5Core2-test | |
- M5Stack-test | |
- M5StickC-test | |
- LGFX-test | |
- M5Unified-test | |
- S3Box-Test | |
#- TTGO-LoRa32-V2-test | |
- M5Stack | |
- M5Core2 | |
- M5Fire | |
- OdroidGo | |
- SdFat-test | |
#exclude: | |
#- sdk-version: 2.0.2 # has broken SD Support | |
# There's no esp32s3box support before 2.0.3 | |
#- { matrix-context: S3Box-Test, sdk-version: 1.0.6 } | |
#- { matrix-context: S3Box-Test, sdk-version: 2.0.0 } | |
#- { matrix-context: S3Box-Test, sdk-version: 2.0.1 } | |
#- { matrix-context: S3Box-Test sdk-version: 2.0.2 } | |
#- { matrix-context: S3Box-Test, sdk-version: 2.0.4 } # will be fixed in 2.0.5 https://github.com/espressif/arduino-esp32/pull/6962/files | |
#- { matrix-context: M5Core2-test, sdk-version: 1.0.6 } # M5Core2.h suddenly ceased to support espressif package 1.0.6/2.0.0 (I2S and I2C broken) | |
include: | |
# buildable sdk versions | |
#- sdk-version: 1.0.6 | |
#- sdk-version: 2.0.0 | |
#- sdk-version: 2.0.1 | |
#- sdk-version: 2.0.5 | |
#- sdk-version: 2.0.6 | |
# - sdk-version: 2.0.7 | |
# - sdk-version: 2.0.8 | |
# - sdk-version: 2.0.9 | |
- sdk-version: 2.0.11 | |
- sdk-version: 2.0.12 | |
- sdk-version: 2.0.13 | |
# library health test sketches | |
- { matrix-context: M5Core2-test, arduino-board: m5stack-core2, sketch-names: M5Core2-SDLoader-Snippet.ino, required-libraries: "M5Core2", ... } | |
- { matrix-context: M5Stack-test, arduino-board: m5stack-core-esp32, sketch-names: M5Stack-SDLoader-Snippet.ino, required-libraries: "ESP32-Chimera-Core,LovyanGFX", ... } | |
- { matrix-context: S3Box-Test, arduino-board: esp32s3box, sketch-names: M5Stack-SDLoader-Snippet.ino, required-libraries: "ESP32-Chimera-Core,LovyanGFX", ... } | |
- { matrix-context: M5Unified-test, arduino-board: m5stack-core2, sketch-names: M5Unified.ino, required-libraries: "M5GFX,M5Unified", ... } | |
- { matrix-context: M5StickC-test, arduino-board: m5stick-c, sketch-names: M5StickC-SPIFFS-Loader-Snippet.ino, required-libraries: "M5StickC", ... } | |
- { matrix-context: LGFX-test, arduino-board: m5stack-core-esp32, sketch-names: LGFX-SDLoader-Snippet.ino, required-libraries: "LovyanGFX", ... } | |
- { matrix-context: SdFat-test, arduino-board: m5stack-core2, sketch-names: SdFatUpdater.ino, required-libraries: "SdFat,M5GFX,M5Unified", ... } | |
# Launcher and Appstore | |
- matrix-context: M5Stack | |
arduino-board: m5stack-core-esp32 | |
sketch-names: M5Stack-SD-Menu.ino,AppStore.ino | |
launcher-name: M5stack-Launcher | |
appstore-name: M5stack-AppStore | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson" | |
- matrix-context: M5Core2 | |
arduino-board: m5stack-core2 | |
sketch-names: M5Stack-SD-Menu.ino,AppStore.ino | |
launcher-name: M5Core2-Launcher | |
appstore-name: M5Core2-AppStore | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson" | |
- matrix-context: M5Fire | |
arduino-board: m5stack-fire | |
sketch-names: M5Stack-SD-Menu.ino,AppStore.ino | |
launcher-name: M5Fire-Launcher | |
appstore-name: M5Fire-AppStore | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson" | |
- matrix-context: OdroidGo | |
arduino-board: odroid_esp32 | |
sketch-names: M5Stack-SD-Menu.ino,AppStore.ino | |
launcher-name: OdroidGo-Launcher | |
appstore-name: OdroidGo-AppStore | |
extra-fqbn: ":PartitionScheme=min_spiffs" | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson,Button2" | |
#- matrix-context: TTGO-LoRa32-V2-test | |
#arduino-board: ttgo-lora32-v2 | |
#sketch-names: TTGO-test.ino | |
#required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson" | |
- matrix-context: M5Atom | |
sdk-version: 2.0.13 | |
arduino-board: m5stack-atom | |
sketch-names: M5Stack-SD-Menu.ino | |
launcher-name: M5Atom-Launcher | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson,Button2" | |
- matrix-context: M5CoreS3 | |
sdk-version: 2.0.13 | |
arduino-board: m5stack-cores3 | |
sketch-names: M5Stack-SD-Menu.ino,M5Stack-FW-Menu.ino | |
launcher-name: M5CoreS3-Launcher | |
factory-name: M5CoreS3-FW-Launcher | |
required-libraries: "ESP32-Chimera-Core,LovyanGFX,ArduinoJson,Button2" | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: ${{ matrix.matrix-context }} | |
uses: ArminJo/[email protected] | |
with: | |
platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json | |
#platform-url: ${{ matrix.platform-url }} | |
arduino-board-fqbn: esp32:esp32:${{ matrix.arduino-board}}${{ matrix.extra-fqbn }} | |
arduino-platform: esp32:esp32@${{ matrix.sdk-version }} | |
required-libraries: ESP32-targz,${{ matrix.required-libraries }} | |
extra-arduino-lib-install-args: --no-deps | |
# extra-arduino-cli-args: ${{ matrix.extra-arduino-cli-args }} | |
extra-arduino-cli-args: "--warnings default " # see https://github.com/ArminJo/arduino-test-compile/issues/28 | |
sketch-names: ${{ matrix.sketch-names }} | |
set-build-path: true | |
build-properties: ${{ toJson(matrix.build-properties) }} | |
#debug-install: true | |
- name: Copy compiled binaries | |
if: startsWith(matrix.sketch-names, 'M5Stack-SD-Menu') | |
run: | | |
cp examples/M5Stack-SD-Menu/build/M5Stack-SD-Menu.ino.bin examples/M5Stack-SD-Menu/build/${{ matrix.launcher-name }}-${{ matrix.sdk-version }}.bin | |
FILE=examples/AppStore/build/AppStore.ino.bin && [ -f "$FILE" ] && cp $FILE examples/M5Stack-SD-Menu/build/${{ matrix.appstore-name }}-${{ matrix.sdk-version }}.bin || true | |
FILE=examples/M5Stack-FW-Menu/build/M5Stack-FW-Menu.ino.bin && [ -f "$FILE" ] && cp $FILE examples/M5Stack-SD-Menu/build/${{ matrix.factory-name }}-${{ matrix.sdk-version }}.bin || true | |
- name: Upload artifact ${{ matrix.matrix-context }} | |
uses: actions/upload-artifact@v3 | |
if: startsWith(matrix.sketch-names, 'M5Stack-SD-Menu') | |
with: | |
name: ${{ matrix.matrix-context }} | |
path: | | |
examples/M5Stack-SD-Menu/build/${{ matrix.launcher-name }}-${{ matrix.sdk-version }}.bin | |
examples/M5Stack-SD-Menu/build/${{ matrix.appstore-name }}-${{ matrix.sdk-version }}.bin | |
examples/M5Stack-SD-Menu/build/${{ matrix.factory-name }}-${{ matrix.sdk-version }}.bin | |
post_build: | |
name: Gather Artefacts | |
runs-on: ubuntu-latest | |
# wait until matrix jobs are all finished | |
needs: matrix_build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Create artifacts dir | |
#if: startsWith(github.ref, 'refs/tags/') | |
run: mkdir -p /home/runner/builds | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
#if: startsWith(github.ref, 'refs/tags/') | |
with: | |
path: builds | |
- name: Release check | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
/home/runner/work/M5Stack-SD-Updater/M5Stack-SD-Updater/builds/** |