Rewrite the shared Kconfig header when following M5Unit-NFC #5
This file contains hidden or 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: Build(esp-idf-native) | |
| on: | |
| push: | |
| tags-ignore: | |
| - '*.*.*' | |
| - 'v*.*.*' | |
| branches: | |
| - '*' | |
| paths: | |
| - 'src/**.cpp' | |
| - 'src/**.hpp' | |
| - 'src/**.h' | |
| - 'src/**.c' | |
| - 'CMakeLists.txt' | |
| - 'idf_component.yml' | |
| - 'examples/UnitUnified/**.cpp' | |
| - 'examples/UnitUnified/**.hpp' | |
| - 'examples/UnitUnified/**.h' | |
| - 'examples/UnitUnified/**.c' | |
| - 'examples/UnitUnified/**/CMakeLists.txt' | |
| - 'examples/UnitUnified/**/Kconfig.projbuild' | |
| - 'examples/UnitUnified/common/**' | |
| - '.github/workflows/esp-idf-build-check.yml' | |
| pull_request: | |
| paths: | |
| - 'src/**.cpp' | |
| - 'src/**.hpp' | |
| - 'src/**.h' | |
| - 'src/**.c' | |
| - 'CMakeLists.txt' | |
| - 'idf_component.yml' | |
| - 'examples/UnitUnified/**.cpp' | |
| - 'examples/UnitUnified/**.hpp' | |
| - 'examples/UnitUnified/**.h' | |
| - 'examples/UnitUnified/**.c' | |
| - 'examples/UnitUnified/**/CMakeLists.txt' | |
| - 'examples/UnitUnified/**/Kconfig.projbuild' | |
| - 'examples/UnitUnified/common/**' | |
| - '.github/workflows/esp-idf-build-check.yml' | |
| workflow_dispatch: | |
| defaults: | |
| run: | |
| shell: bash | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| # Cross design: variant coverage on esp32s3, chip coverage on the other SoCs with the default | |
| # I2C variant (UnitRFID2). The M5Unit-RFID driver (WS1850S) is exercised by UnitRFID2 (GROVE I2C) | |
| # and the M5Dial built-in WS1850S (In_I2C, ESP32-S3 only); UnitNFC / CapCC1101 select the | |
| # ST25R3916 (M5Unit-NFC) path and are not built here. RFID has no Tab5-specific example, so | |
| # esp32p4 (Tab5) is folded into chip coverage rather than a separate Tab5 job. | |
| # | |
| # UHF-RFID (JRD-4035, UART) is a separate protocol family from the I2C WS1850S/MFRC522 units above, | |
| # with only one unit type (no Kconfig variant to select), so it does not fit the variant/chip jobs | |
| # above and gets its own build-uhf job covering every supported SoC (incl. esp32s3, which the | |
| # I2C jobs above do not cover for this family). | |
| jobs: | |
| # Variant coverage: RFID variants on esp32s3 (LCD-capable dual-core Xtensa with PSRAM; also the | |
| # M5Dial host chip). M5Dial built-in (In_I2C) is ESP32-S3 only, so it lives here. | |
| build-variants: | |
| name: ${{ matrix.idf }} esp32s3 ${{ matrix.example_config.label }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 20 | |
| matrix: | |
| # idf boundaries: 5.1.7 = oldest legacy-driver (5.0.x dropped: M5GFX needs esp_mm added | |
| # in 5.1), 5.4.4 = new driver/*_master.h + touch_sens.h era, 5.5.4 = latest. | |
| idf: [v5.1.7, v5.4.4, v5.5.4] | |
| # NFCA Detect gets UnitRFID2 (GROVE) and the M5Dial built-in WS1850S (In_I2C). NFCB Detect | |
| # gets UnitRFID2 only (NFCB is not offered for the Dial built-in — small-antenna limit). | |
| example_config: | |
| - label: NFCA-Detect-UnitRFID2 (full) | |
| example_path: examples/UnitUnified/NFCA/Detect | |
| variant: USING_UNIT_RFID2 | |
| - label: NFCA-Detect-M5DialBuiltin (full) | |
| example_path: examples/UnitUnified/NFCA/Detect | |
| variant: USING_M5DIAL_BUILTIN_WS1850S | |
| - label: NFCB-Detect-UnitRFID2 (no_dial) | |
| example_path: examples/UnitUnified/NFCB/Detect | |
| variant: USING_UNIT_RFID2 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Select Kconfig variant | |
| # The example's own sdkconfig.defaults is not read (top CMakeLists points SDKCONFIG_DEFAULTS | |
| # at common/sdkconfig.defaults). Append the choice to common/ in the CI workspace only. | |
| run: | | |
| echo "" >> examples/UnitUnified/common/sdkconfig.defaults | |
| echo "CONFIG_EXAMPLE_${{ matrix.example_config.variant }}=y" >> examples/UnitUnified/common/sdkconfig.defaults | |
| - name: ESP-IDF build | |
| uses: espressif/esp-idf-ci-action@v1 | |
| with: | |
| esp_idf_version: ${{ matrix.idf }} | |
| target: esp32s3 | |
| path: ${{ matrix.example_config.example_path }} | |
| # Chip coverage: NFCA Detect (UnitRFID2 / GROVE I2C) on every other supported SoC. esp32 = classic | |
| # Xtensa dual-core (M5Unified touch-deprecation path). esp32c6 / esp32h2 = RISC-V single-core, | |
| # exercises the app_main CONFIG_FREERTOS_UNICORE feedIdle branch. esp32p4 (M5Stack Tab5) = | |
| # RISC-V dual-core; sdkconfig.defaults.esp32p4 overlay (chip-rev minimum keys) is auto-applied. | |
| build-chips: | |
| name: ${{ matrix.idf }} ${{ matrix.target }} NFCA-Detect-UnitRFID2 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 20 | |
| matrix: | |
| target: [esp32, esp32c6, esp32h2, esp32p4] | |
| idf: [v5.1.7, v5.4.4, v5.5.4] | |
| exclude: | |
| # esp32p4 stable from IDF v5.3 (M5GFX P4 verified on 5.4/5.5). 5.1.7 not applicable. | |
| - target: esp32p4 | |
| idf: v5.1.7 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Select Kconfig variant | |
| run: | | |
| echo "" >> examples/UnitUnified/common/sdkconfig.defaults | |
| echo "CONFIG_EXAMPLE_USING_UNIT_RFID2=y" >> examples/UnitUnified/common/sdkconfig.defaults | |
| - name: ESP-IDF build | |
| uses: espressif/esp-idf-ci-action@v1 | |
| with: | |
| esp_idf_version: ${{ matrix.idf }} | |
| target: ${{ matrix.target }} | |
| path: examples/UnitUnified/NFCA/Detect | |
| # UHF coverage: Unit UHF-RFID (JRD-4035) is UART-based (addUART, PortC preferred / PortA | |
| # fallback) and has no Kconfig variant (single unit type), so no "Select Kconfig variant" step | |
| # is needed here. Built across every supported SoC (incl. esp32s3) to catch UART wiring | |
| # differences per chip. | |
| build-uhf: | |
| name: ${{ matrix.idf }} ${{ matrix.target }} UHF-Detect | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 20 | |
| matrix: | |
| target: [esp32, esp32s3, esp32c6, esp32h2, esp32p4] | |
| idf: [v5.1.7, v5.4.4, v5.5.4] | |
| exclude: | |
| # esp32p4 stable from IDF v5.3 (M5GFX P4 verified on 5.4/5.5). 5.1.7 not applicable. | |
| - target: esp32p4 | |
| idf: v5.1.7 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: ESP-IDF build | |
| uses: espressif/esp-idf-ci-action@v1 | |
| with: | |
| esp_idf_version: ${{ matrix.idf }} | |
| target: ${{ matrix.target }} | |
| path: examples/UnitUnified/UHF/Detect |