@@ -15,195 +15,115 @@ on:
1515 workflow_dispatch : {}
1616
1717jobs :
18+ setup :
19+ runs-on : ubuntu-latest
20+ outputs :
21+ cache-hit : ${{ steps.cache-esp-idf.outputs.cache-hit }}
22+ steps :
23+ - uses : actions/checkout@v4
24+
25+ - name : Install dependencies
26+ run : |
27+ sudo apt-get update
28+ sudo apt-get install -y git wget flex bison gperf quilt python3 python3-pip \
29+ python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
30+
31+ - name : Cache esp-idf
32+ uses : actions/cache@v4
33+ id : cache-esp-idf
34+ with :
35+ path : |
36+ ~/.espressif
37+ ${{ github.workspace }}/esp-idf
38+ key : ${{ runner.os }}-idf-v5.4.1
39+
40+ - name : Install ESP-IDF
41+ if : steps.cache-esp-idf.outputs.cache-hit != 'true'
42+ run : |
43+ git clone --depth=1 -b $IDF_VERSION https://github.com/espressif/esp-idf.git
44+ ./esp-idf/install.sh
45+ env :
46+ IDF_VERSION : " v5.4.1"
47+
48+ - name : Setup environment
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+
1857 build :
19- runs-on : [self-hosted, Linux, X64]
58+ needs : setup
59+ runs-on : ubuntu-latest
60+ strategy :
61+ matrix :
62+ board :
63+ - M5STACK_AirQ
64+ - M5STACK_Atom_Echo
65+ - M5STACK_Atom_Lite
66+ - M5STACK_Atom_Matrix
67+ - M5STACK_AtomS3
68+ - M5STACK_AtomS3_Lite
69+ - M5STACK_AtomS3R
70+ - M5STACK_AtomS3R_CAM
71+ - M5STACK_AtomS3U
72+ - M5STACK_AtomU
73+ - M5STACK_Basic
74+ - M5STACK_Basic_4MB
75+ - M5STACK_Capsule
76+ - M5STACK_Cardputer
77+ - M5STACK_Core2
78+ - M5STACK_CoreInk
79+ - M5STACK_CoreS3
80+ - M5STACK_Dial
81+ - M5STACK_DinMeter
82+ - M5STACK_Fire
83+ - M5STACK_NanoC6
84+ - M5STACK_Paper
85+ - M5STACK_PaperS3
86+ - M5STACK_Stamp_PICO
87+ - M5STACK_StamPLC
88+ - M5STACK_StampS3
89+ - M5STACK_Station
90+ - M5STACK_StickC
91+ - M5STACK_StickC_PLUS
92+ - M5STACK_StickC_PLUS2
93+ - M5STACK_Tough
94+ max-parallel : 3
2095 steps :
21- 22- - name : Install dependencies with apt
23- run : |
24- sudo apt-get update
25- sudo apt-get install git wget flex bison gperf quilt python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 -y
26- - name : Cache esp-idf
27- uses : actions/cache@v4
28- id : cache-esp-idf
29- with :
30- path : |
31- ~/.espressif
32- ${{ github.workspace }}/esp-idf
33- key : ${{ runner.os }}-idf-${{ hashFiles('idf_version.txt') }}
34- - name : Install ESP-IDF
35- if : steps.cache-idf.outputs.cache-hit != 'true'
36- run : |
37- git clone --depth=1 -b $IDF_VERSION https://github.com/espressif/esp-idf.git
38- ./esp-idf/install.sh
39- env :
40- IDF_VERSION : " v5.4.1"
41- - 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
96+ - uses : actions/checkout@v4
97+
98+ - name : Install dependencies
99+ run : |
100+ sudo apt-get update
101+ sudo apt-get install -y git wget flex bison gperf quilt python3 python3-pip \
102+ python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
103+
104+ - name : Restore ESP-IDF cache
105+ uses : actions/cache@v4
106+ with :
107+ path : |
108+ ~/.espressif
109+ ${{ github.workspace }}/esp-idf
110+ key : ${{ runner.os }}-idf-v5.4.1
111+
112+ - name : Prepare environment
113+ run : |
114+ source esp-idf/export.sh
115+
116+ - name : Build ${{ matrix.board }}
117+ run : |
118+ source esp-idf/export.sh
119+ pip install future
120+ make -C m5stack submodules
121+ make -C m5stack patch
122+ make -C m5stack littlefs
123+ make -C m5stack BOARD=${{ matrix.board }} pack_all
124+
125+ - name : Upload firmware artifact
126+ uses : actions/upload-artifact@v4
127+ with :
128+ name : firmware-${{ matrix.board }}
129+ path : m5stack/build-${{ matrix.board }}/uiflow-*-*.bin
0 commit comments