|
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 | + max-parallel: 3 |
20 | 67 | 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 |
| 68 | + - uses: actions/checkout@v4 |
| 69 | + |
| 70 | + - name: Restore ESP-IDF cache |
| 71 | + uses: actions/cache@v4 |
| 72 | + with: |
| 73 | + path: | |
| 74 | + ~/.espressif |
| 75 | + ${{ github.workspace }}/esp-idf |
| 76 | + key: ${{ runner.os }}-idf-v5.4.1 |
| 77 | + |
| 78 | + - name: Prepare environment |
| 79 | + run: | |
| 80 | + source esp-idf/export.sh |
| 81 | + |
| 82 | + - name: Build ${{ matrix.board }} |
| 83 | + run: | |
| 84 | + source esp-idf/export.sh |
| 85 | + make -C m5stack BOARD=${{ matrix.board }} pack_all |
| 86 | + |
| 87 | + - name: Upload firmware artifact |
| 88 | + uses: actions/upload-artifact@v4 |
| 89 | + with: |
| 90 | + name: firmware-${{ matrix.board }} |
| 91 | + path: m5stack/build-${{ matrix.board }}/firmware.bin |
0 commit comments