@@ -15,195 +15,115 @@ on:
15
15
workflow_dispatch : {}
16
16
17
17
jobs :
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
+
18
57
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
20
95
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