Skip to content

Merge branch 'develop' #33

Merge branch 'develop'

Merge branch 'develop' #33

name: Build(arduino-m5stack)
env:
SKETCH_NAMES_FIND_START: ./examples/UnitUnified
REQUIRED_LIBRARIES: M5Unified,M5UnitUnified,M5Unit-NFC
on:
push:
tags-ignore:
- '*.*.*'
- 'v*.*.*'
branches:
- '*'
paths:
- 'src/**.cpp'
- 'src/**.hpp'
- 'src/**.h'
- 'src/**.c'
- 'examples/UnitUnified/**.ino'
- 'examples/UnitUnified/**.cpp'
- 'examples/UnitUnified/**.hpp'
- 'examples/UnitUnified/**.h'
- 'examples/UnitUnified/**.c'
- '.github/workflows/arduino-m5-build-check.yml'
pull_request:
paths:
- 'src/**.cpp'
- 'src/**.hpp'
- 'src/**.h'
- 'src/**.c'
- 'examples/UnitUnified/**.ino'
- 'examples/UnitUnified/**.cpp'
- 'examples/UnitUnified/**.hpp'
- 'examples/UnitUnified/**.h'
- 'examples/UnitUnified/**.c'
- '.github/workflows/arduino-m5-build-check.yml'
workflow_dispatch:
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.nfctype }}:${{ matrix.sketch }}:${{matrix.board}}@${{matrix.platform-version}}
runs-on: ubuntu-latest
timeout-minutes: 12
strategy:
fail-fast: false
max-parallel: 20
matrix:
platform-url:
- https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
# Cross design (skill m5-build-ci-matrix §3): the board axis is carried by one
# representative per distinct code path. NFCA (WS1850S over I2C, addI2C) and UHF
# (JRD4035 over UART, addUART) are different units on different transports, so both
# stay on the board axis. NFCB is the same unit, bus and wiring helper as NFCA, so
# one build on the representative board is enough to prove its stack compiles.
nfctype:
- NFCA
# - NFCB # via include (m5stack_core only): same unit/bus/wiring as NFCA
sketch:
- Detect
build-properties:
- "-DUSING_UNIT_RFID2"
# Build CI board axis = distinct compile config only (skill m5-build-ci-matrix).
# m5stack:esp32 3.x covers ESP32 / S3 / C6 / P4 (no H2 in this package).
board:
- m5stack_core # m5stack:esp32 x ESP32 (xtensa-esp32)
- m5stack_cores3 # m5stack:esp32 x ESP32-S3 (separate GCC target)
- m5stack_nano_c6 # m5stack:esp32 x ESP32-C6 (rv32)
- m5stack_nano_h2 # m5stack:esp32 x ESP32-H2 (rv32, H2 image target)
- m5stack_tab5 # m5stack:esp32 x ESP32-P4 (rv32 single-float)
# - arduino_nesso_n1 # ESP32-C6: represented by m5stack_nano_c6
# - m5stack_atom # ESP32: represented by m5stack_core
# - m5stack_atoms3 # ESP32-S3: represented by m5stack_cores3
# - m5stack_atoms3r # ESP32-S3: represented by m5stack_cores3
# - m5stack_capsule # ESP32-S3: represented by m5stack_cores3
# - m5stack_cardputer # ESP32-S3: represented by m5stack_cores3
# - m5stack_core2 # ESP32: represented by m5stack_core
# - m5stack_coreink # ESP32: represented by m5stack_core
# - m5stack_dial # ESP32-S3: represented by m5stack_cores3
# - m5stack_dinmeter # ESP32-S3: represented by m5stack_cores3
# - m5stack_fire # ESP32: represented by m5stack_core
# - m5stack_paper # ESP32: represented by m5stack_core
# - m5stack_papers3 # ESP32-S3: represented by m5stack_cores3
# - m5stack_stamp_s3 # ESP32-S3: represented by m5stack_cores3
# - m5stack_stickc # ESP32: represented by m5stack_core
# - m5stack_stickc_plus # ESP32: represented by m5stack_core
# - m5stack_stickc_plus2 # ESP32: represented by m5stack_core
# - m5stack_sticks3 # ESP32-S3: represented by m5stack_cores3
platform-version:
- 3.3.7
platform:
- m5stack
archi:
- esp32
include:
# Specific sketches (NFCA, USING_UNIT_RFID2, Core only)
- sketch: Dump
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
- sketch: ValueBlock
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
- sketch: ReadWrite
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
- sketch: NDEF
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
- sketch: PolicyOverride
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
# Detect on M5Dial with builtin WS1850S (NFCA, USING_M5DIAL_BUILTIN_WS1850S)
- sketch: Detect
nfctype: NFCA
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_dial
build-properties: "-DUSING_M5DIAL_BUILTIN_WS1850S"
# Detect (NFCB, USING_UNIT_RFID2, Core only) - moved off the board axis above
- sketch: Detect
nfctype: NFCB
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
# JapanIDCard (NFCB, USING_UNIT_RFID2, Core only)
- sketch: JapanIDCard
nfctype: NFCB
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_RFID2"
# UHF-RFID (UART, single unit, no USING_* define).
# Detect covers the board axis; the rest go on Core for the API axis,
# the same shape the NFC-A / NFC-B families use above.
- sketch: Detect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: Detect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_cores3
build-properties: ""
- sketch: Detect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_nano_c6
build-properties: ""
- sketch: Detect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_nano_h2
build-properties: ""
- sketch: Detect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_tab5
build-properties: ""
- sketch: Dump
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: ReadWrite
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: ReaderSettings
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: Lock
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: Kill
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: WriteEPC
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: SleepIdle
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: MonzaQT
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: PermanentLock
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: NxpG2X
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
- sketch: NxpReadProtect
nfctype: UHF
platform-url: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
platform: m5stack
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: ""
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare libraries list
id: libs
run: |
{
echo "yaml<<EOF"
echo "$REQUIRED_LIBRARIES" | tr ',' '\n' | while read -r lib; do
echo "- name: $lib"
done
echo "- source-path: ./"
echo "EOF"
} >> "$GITHUB_OUTPUT"
- name: Compile examples
uses: arduino/compile-sketches@v1
with:
fqbn: ${{ matrix.platform }}:${{ matrix.archi }}:${{ matrix.board }}
platforms: |
- name: ${{ matrix.platform }}:${{ matrix.archi }}
source-url: ${{ matrix.platform-url }}
version: ${{ matrix.platform-version }}
libraries: ${{ steps.libs.outputs.yaml }}
sketch-paths: |
- ${{ env.SKETCH_NAMES_FIND_START }}/${{ matrix.nfctype }}/${{ matrix.sketch }}
cli-compile-flags: |
- --build-property
- build.extra_flags=${{ matrix.build-properties }}