Skip to content

Check that a capability container fits before trusting its block count #35

Check that a capability container fits before trusting its block count

Check that a capability container fits before trusting its block count #35

name: Build(arduino-esp32:3.x)
env:
SKETCH_NAMES_FIND_START: ./examples/UnitUnified
REQUIRED_LIBRARIES: M5Unified,M5UnitUnified
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-esp-v3-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-esp-v3-build-check.yml'
workflow_dispatch:
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.build-properties }}:${{ matrix.nfc }}/${{ 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://espressif.github.io/arduino-esp32/package_esp32_index.json
sketch:
- Detect
# Cross design: NFCA Detect on every board (chip-coverage matrix), NFCB/F/V Detect on
# m5stack_core only via include. NFC protocols share the same library code path, so
# per-board compile of NFCA is enough to catch chip issues; NFCB/F/V get one build each
# to confirm the family-specific stack compiles.
nfc:
- NFCA
# - NFCB # via include (m5stack_core only)
# - NFCF # via include (m5stack_core only)
# - NFCV # via include (m5stack_core only)
build-properties:
- "-DUSING_UNIT_NFC"
# Reduced from 18 → 10 boards. One representative per chip family + the boards where
# NFC is actually deployed (NessoN1/Dial for PortA, Cardputer for CapCC1101). Uncomment
# any line below to widen coverage. m5stack fork-specific boards (atoms3r, papers3,
# sticks3, nano_h2) are not in the espressif:esp32 FQBN set; see arduino-m5 workflow.
board:
- arduino_nesso_n1 # ESP32-C6 (RISC-V single, NFC PortA primary)
# - m5stack_atom # ESP32 small atom
- m5stack_atoms3 # ESP32-S3 small atom
# - m5stack_capsule # ESP32-S3 small board
- m5stack_cardputer # ESP32-S3 (CapCC1101 built-in)
- m5stack_core # ESP32 classic representative
- m5stack_core2 # ESP32 (touch + IMU + RTC)
# - m5stack_coreink # ESP32 e-ink
- m5stack_cores3 # ESP32-S3 representative
- m5stack_dial # ESP32-S3 (NFC primary use case)
# - m5stack_dinmeter # ESP32-S3 (similar to dial)
# - m5stack_fire # ESP32 (= core + PSRAM)
- m5stack_nanoc6 # ESP32-C6 (Wire GROVE constraint)
# - m5stack_paper # ESP32 e-ink
# - m5stack_poe_cam
# - m5stack_stamp_c3
# - m5stack_stamp_pico
# - m5stack_stamp_s3 # ESP32-S3 stamp variant
# - m5stack_station
# - m5stack_stickc # ESP32 (legacy)
# - m5stack_stickc_plus # ESP32 (older stick)
- m5stack_stickc_plus2 # ESP32 (latest stick)
- m5stack_tab5 # ESP32-P4 (Tab5)
# - m5stack_timer_cam
# - m5stack_tough
# - m5stack_unit_cam
# - m5stack_unit_cams3
# Pinned to 3.3.7: 3.3.8 broke Tab5 (ESP32-P4) build because
# esp32-hal-spi.c references BOARD_SDMMC_POWER_CHANNEL which is missing in
# variants/m5stack_tab5/pins_arduino.h (upstream regression in PR #12079).
# Tab5 is also covered by arduino-m5-build-check.yml (m5stack:esp32 fork).
platform-version:
- 3.3.7
platform:
- esp32
archi:
- esp32
include:
# NFCB/F/V Detect on m5stack_core (cross design — see nfc: comment above).
- sketch: Detect
nfc: NFCB
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: Detect
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: Detect
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
# NFCA Specific sketches
- sketch: Dump
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: ValueBlock
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: ReadWrite
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: NDEF
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: Emulation
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: PolicyOverride
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
# NFCB Specific sketches
- sketch: JapanIDCard
nfc: NFCB
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
# NFCF Specific sketches
- sketch: Dump
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: NDEF
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: Subtract
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: ReadWriteMAC
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: JapanTransportationICCard
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: Emulation
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
# NFCV Specific sketches
- sketch: Dump
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
- sketch: NDEF
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_core
build-properties: "-DUSING_UNIT_NFC"
# CapCC1101 on Cardputer
- sketch: Detect
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Detect
nfc: NFCB
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Detect
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Detect
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
# CapCC1101 NFCA non-Detect sketches
- sketch: Dump
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: ReadWrite
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: ValueBlock
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: NDEF
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Emulation
nfc: NFCA
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
# CapCC1101 NFCB non-Detect sketches
- sketch: JapanIDCard
nfc: NFCB
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
# CapCC1101 NFCF non-Detect sketches
- sketch: Dump
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: NDEF
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Subtract
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: ReadWriteMAC
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: JapanTransportationICCard
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: Emulation
nfc: NFCF
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
# CapCC1101 NFCV non-Detect sketches
- sketch: Dump
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
- sketch: NDEF
nfc: NFCV
platform-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
platform: esp32
archi: esp32
platform-version: 3.3.7
board: m5stack_cardputer
build-properties: "-DUSING_CAP_CC1101"
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.nfc }}/${{ matrix.sketch }}
cli-compile-flags: |
- --build-property
- build.extra_flags=${{ matrix.build-properties }}