Skip to content

Commit c92f000

Browse files
committed
github/workflows: Compile firmware in parallel using a matrix strategy.
Signed-off-by: lbuque <[email protected]>
1 parent ab8e711 commit c92f000

File tree

1 file changed

+20
-169
lines changed

1 file changed

+20
-169
lines changed

.github/workflows/ports_m5stack.yml

Lines changed: 20 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ on:
1717
jobs:
1818
build:
1919
runs-on: [self-hosted, Linux, X64]
20+
strategy:
21+
matrix:
22+
board:
23+
- M5STACK_AirQ
24+
- M5STACK_Atom_Echo
25+
- M5STACK_Atom_Lite
26+
2027
steps:
2128
- uses: actions/[email protected]
2229
- name: Install dependencies with apt
@@ -30,7 +37,7 @@ jobs:
3037
path: |
3138
~/.espressif
3239
${{ github.workspace }}/esp-idf
33-
key: ${{ runner.os }}-idf-${{ hashFiles('idf_version.txt') }}
40+
key: ${{ runner.os }}-idf-v5.4.1
3441
- name: Install ESP-IDF
3542
if: steps.cache-idf.outputs.cache-hit != 'true'
3643
run: |
@@ -39,171 +46,15 @@ jobs:
3946
env:
4047
IDF_VERSION: "v5.4.1"
4148
- name: Install packages
42-
run: source tools/ci.sh && ci_esp32_idf541_setup
43-
- name: Build
44-
run: source tools/ci.sh && ci_esp32_nightly_build
45-
- name: Deliver AirQ firmware
46-
uses: actions/upload-artifact@v4
47-
with:
48-
name: M5STACK_AirQ_firmware
49-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AirQ/uiflow-*-*.bin
50-
- name: Deliver Atom Echo firmware
51-
uses: actions/upload-artifact@v4
52-
with:
53-
name: M5STACK_Atom_Echo_firmware
54-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Atom_Echo/uiflow-*-*.bin
55-
- name: Deliver Atom Lite firmware
56-
uses: actions/upload-artifact@v4
57-
with:
58-
name: M5STACK_Atom_Lite_firmware
59-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Atom_Lite/uiflow-*-*.bin
60-
- name: Deliver Atom Matrix firmware
61-
uses: actions/upload-artifact@v4
62-
with:
63-
name: M5STACK_Atom_Matrix_firmware
64-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Atom_Matrix/uiflow-*-*.bin
65-
- name: Deliver AtomS3 firmware
66-
uses: actions/upload-artifact@v4
67-
with:
68-
name: M5STACK_AtomS3_firmware
69-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomS3/uiflow-*-*.bin
70-
- name: Deliver AtomS3-Lite firmware
71-
uses: actions/upload-artifact@v4
72-
with:
73-
name: M5STACK_AtomS3-Lite_firmware
74-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomS3_Lite/uiflow-*-*.bin
75-
- name: Deliver AtomS3R firmware
76-
uses: actions/upload-artifact@v4
77-
with:
78-
name: M5STACK_AtomS3R_firmware
79-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomS3R/uiflow-*-*.bin
80-
- name: Deliver AtomS3R-CAM firmware
81-
uses: actions/upload-artifact@v4
82-
with:
83-
name: M5STACK_AtomS3R_CAM_firmware
84-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomS3R_CAM/uiflow-*-*.bin
85-
- name: Deliver AtomS3U firmware
86-
uses: actions/upload-artifact@v4
87-
with:
88-
name: M5STACK_AtomS3U_firmware
89-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomS3U/uiflow-*-*.bin
90-
- name: Deliver AtomU firmware
91-
uses: actions/upload-artifact@v4
92-
with:
93-
name: M5STACK_AtomU_firmware
94-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_AtomU/uiflow-*-*.bin
95-
- name: Deliver Basic firmware
96-
uses: actions/upload-artifact@v4
97-
with:
98-
name: M5STACK_Basic_firmware
99-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Basic/uiflow-*-*.bin
100-
- name: Deliver Basic(4MB Flash) firmware
101-
uses: actions/upload-artifact@v4
102-
with:
103-
name: M5STACK_Basic_4MB_Flash_firmware
104-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Basic_4MB/uiflow-*-*.bin
105-
- name: Deliver Capsule firmware
106-
uses: actions/upload-artifact@v4
107-
with:
108-
name: M5STACK_Capsule_firmware
109-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Capsule/uiflow-*-*.bin
110-
- name: Deliver Cardputer firmware
111-
uses: actions/upload-artifact@v4
112-
with:
113-
name: M5STACK_Cardputer_firmware
114-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Cardputer/uiflow-*-*.bin
115-
- name: Deliver Core2 firmware
116-
uses: actions/upload-artifact@v4
117-
with:
118-
name: M5STACK_Core2_firmware
119-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Core2/uiflow-*-*.bin
120-
- name: Deliver CoreInk firmware
121-
uses: actions/upload-artifact@v4
122-
with:
123-
name: M5STACK_CoreInk_firmware
124-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_CoreInk/uiflow-*-*.bin
125-
- name: Deliver CoreS3 firmware
126-
uses: actions/upload-artifact@v4
127-
with:
128-
name: M5STACK_CoreS3_firmware
129-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_CoreS3/uiflow-*-*.bin
130-
- name: Deliver Dial firmware
131-
uses: actions/upload-artifact@v4
132-
with:
133-
name: M5STACK_Dial_firmware
134-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Dial/uiflow-*-*.bin
135-
- name: Deliver DinMeter firmware
136-
uses: actions/upload-artifact@v4
137-
with:
138-
name: M5STACK_DinMeter_firmware
139-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_DinMeter/uiflow-*-*.bin
140-
- name: Deliver Fire firmware
141-
uses: actions/upload-artifact@v4
142-
with:
143-
name: M5STACK_Fire_firmware
144-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Fire/uiflow-*-*.bin
145-
- name: Deliver NanoC6 firmware
146-
uses: actions/upload-artifact@v4
147-
with:
148-
name: M5STACK_NanoC6_firmware
149-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_NanoC6/uiflow-*-*.bin
150-
- name: Deliver Paper firmware
151-
uses: actions/upload-artifact@v4
152-
with:
153-
name: M5STACK_Paper_firmware
154-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Paper/uiflow-*-*.bin
155-
- name: Deliver PaperS3 firmware
156-
uses: actions/upload-artifact@v4
157-
with:
158-
name: M5STACK_Paper_firmware
159-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_PaperS3/uiflow-*-*.bin
160-
- name: Deliver Stamp PICO firmware
161-
uses: actions/upload-artifact@v4
162-
with:
163-
name: M5STACK_Stamp_PICO_firmware
164-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Stamp_PICO/uiflow-*-*.bin
165-
- name: Deliver StamPLC firmware
166-
uses: actions/upload-artifact@v4
167-
with:
168-
name: M5STACK_StamPLC_firmware
169-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_StamPLC/uiflow-*-*.bin
170-
- name: Deliver StampS3 firmware
171-
uses: actions/upload-artifact@v4
172-
with:
173-
name: M5STACK_StampS3_firmware
174-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_StampS3/uiflow-*-*.bin
175-
- name: Deliver Station firmware
176-
uses: actions/upload-artifact@v4
177-
with:
178-
name: M5STACK_Station_firmware
179-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Station/uiflow-*-*.bin
180-
- name: Deliver StickC firmware
181-
uses: actions/upload-artifact@v4
182-
with:
183-
name: M5STACK_StickC_firmware
184-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_StickC/uiflow-*-*.bin
185-
- name: Deliver StickC_PLUS firmware
186-
uses: actions/upload-artifact@v4
187-
with:
188-
name: M5STACK_StickC_PLUS_firmware
189-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_StickC_PLUS/uiflow-*-*.bin
190-
- name: Deliver StickC_PLUS2 firmware
191-
uses: actions/upload-artifact@v4
192-
with:
193-
name: M5STACK_StickC_PLUS2_firmware
194-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_StickC_PLUS2/uiflow-*-*.bin
195-
- name: Deliver Tough firmware
196-
uses: actions/upload-artifact@v4
197-
with:
198-
name: M5STACK_Tough_firmware
199-
path: $GITHUB_WORKSPACE/m5stack/build-M5STACK_Tough/uiflow-*-*.bin
200-
- name: Deliver XIAOS3 firmware
201-
uses: actions/upload-artifact@v4
202-
with:
203-
name: M5STACK_XIAOS3_firmware
204-
path: $GITHUB_WORKSPACE/third-party/build-SEEED_STUDIO_XIAO_ESP32S3/uiflow-*-*.bin
205-
- name: Deliver BOX-3 firmware
206-
uses: actions/upload-artifact@v4
207-
with:
208-
name: M5STACK_BOX_3_firmware
209-
path: $GITHUB_WORKSPACE/third-party/build-ESPRESSIF_ESP32_S3_BOX_3/uiflow-*-*.bin
49+
run: |
50+
source tools/ci.sh && ci_esp32_idf541_setup
51+
source esp-idf/export.sh
52+
pip install future
53+
make -C m5stack submodules
54+
make -C m5stack patch
55+
make -C m5stack littlefs
56+
57+
- name: Build for ${{ matrix.board }}
58+
run: |
59+
source esp-idf/export.sh
60+
make -C m5stack BOARD=${{ matrix.board }} pack_all

0 commit comments

Comments
 (0)