11name : CI
22
3- on : [push, pull_request]
3+ on :
4+ push :
5+ pull_request :
6+ branches :
7+ - master
8+ - dev
9+ - main
410
511jobs :
6-
7-
812 build :
9- runs-on : ubuntu-20 .04
13+ runs-on : ubuntu-24 .04
1014 container :
11- image : alpine:3.16
15+ image : alpine:3.21
1216 strategy :
1317 matrix :
14- model : ["TS100", "TS80", "TS80P", "Pinecil", "MHP30", "Pinecilv2", "S60", "TS101"]
18+ model :
19+ [
20+ " TS100" ,
21+ " TS80" ,
22+ " TS80P" ,
23+ " Pinecil" ,
24+ " MHP30" ,
25+ " Pinecilv2" ,
26+ " S60" ,
27+ " S60P" ,
28+ " T55" ,
29+ " TS101" ,
30+ ]
1531 fail-fast : true
1632
1733 steps :
1834 - name : Install dependencies (apk)
19- run : apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash
35+ run : apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++ -arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash
2036
2137 - name : Install dependencies (python)
22- run : python3 -m pip install bdflib
38+ run : python3 -m pip install --break-system-packages bdflib
2339
24- - uses : actions/checkout@v4
40+ - uses : actions/checkout@v5
2541 with :
2642 submodules : true
2743
@@ -37,44 +53,38 @@ jobs:
3753 - name : Copy license files
3854 run : cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
3955
56+ - name : Generate json index file
57+ run : ./source/metadata.py ${{ matrix.model }}.json
58+
4059 - name : Archive ${{ matrix.model }} artifacts
41- uses : actions/upload-artifact@v3
60+ uses : actions/upload-artifact@v4
4261 with :
4362 name : ${{ matrix.model }}
4463 path : |
4564 source/Hexfile/${{ matrix.model }}_*.hex
4665 source/Hexfile/${{ matrix.model }}_*.dfu
4766 source/Hexfile/${{ matrix.model }}_*.bin
67+ source/Hexfile/${{ matrix.model }}.json
4868 source/Hexfile/LICENSE
4969 source/Hexfile/LICENSE_RELEASE.md
5070 if-no-files-found : error
5171
52- - name : Generate json index file
53- run : ./source/metadata.py ${{ matrix.model }}.json
54-
55- - name : Archive ${{ matrix.model }} index file
56- uses : actions/upload-artifact@v3
57- with :
58- name : metadata
59- path : source/Hexfile/${{ matrix.model }}.json
60-
61-
6272 build_multi-lang :
63- runs-on : ubuntu-20 .04
73+ runs-on : ubuntu-24 .04
6474 container :
65- image : alpine:3.16
75+ image : alpine:3.21
6676 strategy :
6777 matrix :
6878 model : ["Pinecil", "Pinecilv2"]
6979 fail-fast : true
7080
7181 steps :
7282 - name : Install dependencies (apk)
73- run : apk add --no-cache gcc-riscv-none-elf newlib-riscv-none-elf findutils python3 py3-pip make git bash musl-dev
83+ run : apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash musl-dev
7484 - name : Install dependencies (python)
75- run : python3 -m pip install bdflib
85+ run : python3 -m pip install --break-system-packages bdflib
7686
77- - uses : actions/checkout@v4
87+ - uses : actions/checkout@v5
7888 with :
7989 submodules : true
8090
@@ -85,101 +95,120 @@ jobs:
8595 run : echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"
8696
8797 - name : Build ${{ matrix.model }}
88- run : make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian +Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
98+ run : make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian +Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
8999
90100 - name : Copy license files
91101 run : cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
92102
103+ - name : Generate json index file
104+ run : ./source/metadata.py ${{ matrix.model }}_multi-lang.json
105+
93106 - name : Archive ${{ matrix.model }} artifacts
94- uses : actions/upload-artifact@v3
107+ uses : actions/upload-artifact@v4
95108 with :
96109 name : ${{ matrix.model }}_multi-lang
97110 path : |
98111 source/Hexfile/${{ matrix.model }}_*.hex
99112 source/Hexfile/${{ matrix.model }}_*.dfu
100113 source/Hexfile/${{ matrix.model }}_*.bin
114+ source/Hexfile/${{ matrix.model }}_multi-lang.json
101115 source/Hexfile/LICENSE
102116 source/Hexfile/LICENSE_RELEASE.md
103117 if-no-files-found : error
104118
105- - name : Generate json index file
106- run : ./source/metadata.py ${{ matrix.model }}_multi-lang.json
119+ upload_metadata :
120+ needs : [build, build_multi-lang]
121+ runs-on : ubuntu-24.04
107122
108- - name : Archive ${{ matrix.model }} index file
109- uses : actions/upload-artifact@v3
123+ steps :
124+ - name : Download all prebuilts
125+ uses : actions/download-artifact@v5
110126 with :
111- name : metadata
112- path : source/Hexfile/${{ matrix.model }}_multi-lang.json
127+ path : source/Hexfile/
128+ merge-multiple : true
129+ - run : ls -R source/Hexfile
113130
131+ - name : Upload JSONs in bulk as metadata
132+ uses : actions/upload-artifact@v4
133+ with :
134+ name : metadata
135+ path : source/Hexfile/*.json
136+ if-no-files-found : error
114137
115138 tests :
116- runs-on : ubuntu-20 .04
139+ runs-on : ubuntu-24 .04
117140 container :
118- image : alpine:3.16
141+ image : alpine:3.21
119142
120143 steps :
121144 - name : Install dependencies (apk)
122145 run : apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev
123146
124- - uses : actions/checkout@v4
147+ - uses : actions/checkout@v5
125148 with :
126149 submodules : true
127150
128151 - name : Install dependencies (python)
129- run : python3 -m pip install bdflib
152+ run : python3 -m pip install --break-system-packages bdflib
130153
131154 - name : Run python tests
132155 run : ./Translations/make_translation_test.py
133156
134157 - name : Run BriefLZ tests
135158 run : make -C source/ Objects/host/brieflz/libbrieflz.so && ./Translations/brieflz_test.py
136159
137-
138160 check_c-cpp :
139- runs-on : ubuntu-20 .04
161+ runs-on : ubuntu-24 .04
140162 container :
141- image : alpine:3.16
163+ image : alpine:3.21
142164
143165 steps :
144166 - name : Install dependencies (apk)
145167 run : apk add --no-cache make git diffutils findutils clang-extra-tools bash
146168
147- - uses : actions/checkout@v4
169+ - uses : actions/checkout@v5
148170 with :
149171 submodules : true
150172
151173 - name : Check format style with clang-format
152174 run : make clean check-style
153175
176+ check-settings-docs :
177+ runs-on : ubuntu-24.04
178+ steps :
179+ - uses : actions/checkout@v5
180+ - name : Run the menu docs generator
181+ run : python Translations/gen_menu_docs.py
182+ - name : Check that Documentation/Settings.md didn't change
183+ run : git diff --exit-code
154184
155185 check_python :
156- runs-on : ubuntu-20 .04
186+ runs-on : ubuntu-24 .04
157187 container :
158- image : alpine:3.16
188+ image : alpine:3.21
159189
160190 steps :
161191 - name : Install dependencies (apk)
162192 run : apk add --no-cache python3 py3-pip make git black
163193
164- - uses : actions/checkout@v4
194+ - uses : actions/checkout@v5
165195 with :
166196 submodules : true
167197
168198 - name : Install dependencies (python)
169- run : python3 -m pip install bdflib flake8
199+ run : python3 -m pip install --break-system-packages bdflib flake8
170200
171201 - name : Check python formatting with black
172- run : black --check Translations
202+ run : black --diff -- check Translations
173203
174204 - name : Check python with flake8
175205 run : flake8 Translations
176206
177-
178207 check_shell :
179208 name : check_shell
180- runs-on : ubuntu-latest
209+ runs-on : ubuntu-24.04
181210 steps :
182- - uses : actions/checkout@v4
211+ - uses : actions/checkout@v5
183212 - name : shellcheck
184213 uses : reviewdog/action-shellcheck@v1
185214 with :
@@ -188,19 +217,23 @@ jobs:
188217 exclude : " ./.git/*" # Optional.
189218 check_all_files_with_shebangs : " false" # Optional.
190219
191-
192- check_readme :
193- runs-on : ubuntu-20.04
220+ check_docs :
221+ runs-on : ubuntu-24.04
194222 container :
195- image : alpine:3.16
223+ image : alpine:3.21
196224
197225 steps :
198226 - name : Install dependencies (apk)
199- run : apk add --no-cache git
227+ run : apk add --no-cache git bash grep
200228
201- - uses : actions/checkout@v4
229+ - uses : actions/checkout@v5
202230 with :
203231 submodules : true
232+ fetch-tags : true
233+ fetch-depth : 0
234+
235+ - name : Git ownership exception
236+ run : git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
204237
205- - name : Check autogenerated Documentation/README.md
206- run : /bin/sh ./scripts/deploy.sh docs_readme
238+ - name : Check and verify documentation
239+ run : ./scripts/deploy.sh docs
0 commit comments