|
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: Install dependencies |
| 71 | + run: | |
| 72 | + sudo apt-get update |
| 73 | + sudo apt-get install -y git wget flex bison gperf quilt python3 python3-pip \ |
| 74 | + python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 |
| 75 | +
|
| 76 | + - name: Restore ESP-IDF cache |
| 77 | + uses: actions/cache@v4 |
| 78 | + with: |
| 79 | + path: | |
| 80 | + ~/.espressif |
| 81 | + ${{ github.workspace }}/esp-idf |
| 82 | + key: ${{ runner.os }}-idf-v5.4.1 |
| 83 | + |
| 84 | + - name: Prepare environment |
| 85 | + run: | |
| 86 | + source esp-idf/export.sh |
| 87 | +
|
| 88 | + - name: Build ${{ matrix.board }} |
| 89 | + run: | |
| 90 | + source esp-idf/export.sh |
| 91 | + pip install future |
| 92 | + make -C m5stack submodules |
| 93 | + make -C m5stack patch |
| 94 | + make -C m5stack littlefs |
| 95 | + make -C m5stack BOARD=${{ matrix.board }} pack_all |
| 96 | +
|
| 97 | + - name: Upload firmware artifact |
| 98 | + uses: actions/upload-artifact@v4 |
| 99 | + with: |
| 100 | + name: firmware-${{ matrix.board }} |
| 101 | + path: m5stack/build-${{ matrix.board }}/firmware.bin |
0 commit comments