-
Notifications
You must be signed in to change notification settings - Fork 0
155 lines (146 loc) · 6.07 KB
/
Copy pathesp-idf-build-check.yml
File metadata and controls
155 lines (146 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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
# UART variant (UnitFinger). UnitFinger PlotToSerial gets all three FPC1020A wirings
# (Unit / Hat / Faces); the other UnitFinger examples compile with the default variant only.
# UnitFinger2 has a single unit/wiring variant (no Kconfig choice), so its examples build
# without a variant selection and only on esp32s3 — the FPC1020A chip job covers the SoCs.
jobs:
# Variant coverage: every example / wiring variant on esp32s3 (LCD-capable dual-core Xtensa with PSRAM).
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]
# Cross design: PlotToSerial gets all three FPC1020A variants — primary example.
# Capture / Characteristic / User compile with the default UnitFinger variant only.
example_config:
- label: UnitFinger-PlotToSerial-Unit (full)
example_path: examples/UnitUnified/UnitFinger/PlotToSerial
variant: USING_UNIT_FINGER
- label: UnitFinger-PlotToSerial-Hat (full)
example_path: examples/UnitUnified/UnitFinger/PlotToSerial
variant: USING_HAT_FINGER
- label: UnitFinger-PlotToSerial-Faces (full)
example_path: examples/UnitUnified/UnitFinger/PlotToSerial
variant: USING_FACES_FINGER
- label: UnitFinger-Capture-Unit
example_path: examples/UnitUnified/UnitFinger/Capture
variant: USING_UNIT_FINGER
- label: UnitFinger-Characteristic-Unit
example_path: examples/UnitUnified/UnitFinger/Characteristic
variant: USING_UNIT_FINGER
- label: UnitFinger-User-Unit
example_path: examples/UnitUnified/UnitFinger/User
variant: USING_UNIT_FINGER
- label: UnitFinger2-PlotToSerial
example_path: examples/UnitUnified/UnitFinger2/PlotToSerial
variant: ''
- label: UnitFinger2-Automatic
example_path: examples/UnitUnified/UnitFinger2/Automatic
variant: ''
- label: UnitFinger2-Capture
example_path: examples/UnitUnified/UnitFinger2/Capture
variant: ''
- label: UnitFinger2-User
example_path: examples/UnitUnified/UnitFinger2/User
variant: ''
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.
# UnitFinger2 has no variant choice, so the step is skipped for its examples.
if: matrix.example_config.variant != ''
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: UnitFinger PlotToSerial (default UART variant) on every other supported SoC.
# esp32 = classic Xtensa dual-core (M5Unified touch-deprecation path). esp32c3 / 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 }} UnitFinger-PlotToSerial-Unit
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
max-parallel: 20
matrix:
target: [esp32, esp32c3, 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_FINGER=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/UnitFinger/PlotToSerial