@@ -36,21 +36,34 @@ jobs:
3636 github_token : ${{ secrets.GITHUB_TOKEN }}
3737
3838 build :
39- name : Build
39+ name : Build (${{ matrix.name }})
4040 needs : setup_release
4141 permissions :
4242 contents : read
4343 runs-on : ${{ matrix.os }}
4444 defaults :
4545 run :
46- shell : ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
46+ shell : ${{ matrix.shell }}
4747 strategy :
4848 fail-fast : false
4949 matrix :
50- os :
51- - ubuntu-latest
52- - macos-latest
53- - windows-latest
50+ include :
51+ - name : Linux
52+ os : ubuntu-latest
53+ shell : bash
54+ - name : macOS
55+ os : macos-latest
56+ shell : bash
57+ - name : Windows-AMD64
58+ os : windows-latest
59+ shell : msys2 {0}
60+ msystem : ucrt64
61+ toolchain : ucrt-x86_64
62+ - name : Windows-ARM64
63+ os : windows-11-arm
64+ shell : msys2 {0}
65+ msystem : clangarm64
66+ toolchain : clang-aarch64
5467 steps :
5568 - name : Checkout
5669 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -84,18 +97,17 @@ jobs:
8497 if : runner.os == 'Windows'
8598 uses : msys2/setup-msys2@cafece8e6baf9247cf9b1bf95097b0b983cc558d # v2.31.0
8699 with :
87- msystem : ucrt64
100+ msystem : ${{ matrix.msystem }}
88101 update : true
89102 install : >-
90103 doxygen
91- mingw-w64-ucrt-x86_64-binutils
92- mingw-w64-ucrt-x86_64-cmake
93- mingw-w64-ucrt-x86_64-graphviz
94- mingw-w64-ucrt-x86_64-ninja
95- mingw-w64-ucrt-x86_64-nodejs
96- mingw-w64-ucrt-x86_64-toolchain
97- mingw-w64-ucrt-x86_64-boost
98- mingw-w64-ucrt-x86_64-nlohmann-json
104+ mingw-w64-${{ matrix.toolchain }}-boost
105+ mingw-w64-${{ matrix.toolchain }}-cmake
106+ mingw-w64-${{ matrix.toolchain }}-graphviz
107+ mingw-w64-${{ matrix.toolchain }}-ninja
108+ mingw-w64-${{ matrix.toolchain }}-nodejs
109+ mingw-w64-${{ matrix.toolchain }}-toolchain
110+ mingw-w64-${{ matrix.toolchain }}-nlohmann-json
99111
100112 - name : Setup python
101113 id : setup-python
@@ -172,7 +184,7 @@ jobs:
172184 (steps.test_report.outcome == 'success')
173185 uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
174186 with :
175- name : coverage-${{ matrix.os }}
187+ name : coverage-${{ matrix.name }}
176188 path : |
177189 build/coverage.xml
178190 build/tests/test_results.xml
@@ -181,7 +193,7 @@ jobs:
181193 - name : Move Artifacts
182194 run : |
183195 mkdir -p artifacts
184- if ["${RUNNER_OS}" == "Windows"]; then
196+ if [[ "${RUNNER_OS}" == "Windows" ] ]; then
185197 mv -f ./build/tests/test_libdisplaydevice.exe artifacts/
186198 else
187199 mv -f ./build/tests/test_libdisplaydevice artifacts/
@@ -190,7 +202,7 @@ jobs:
190202 - name : Upload Artifacts
191203 uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
192204 with :
193- name : build-${{ runner.os }}
205+ name : build-${{ matrix.name }}
194206 path : artifacts/
195207 if-no-files-found : error
196208
@@ -208,20 +220,22 @@ jobs:
208220 fail-fast : false
209221 matrix :
210222 include :
211- - build_os : ubuntu-latest
223+ - build_name : Linux
212224 flag : Linux
213- - build_os : macos-latest
225+ - build_name : macOS
214226 flag : macOS
215- - build_os : windows-latest
216- flag : Windows
227+ - build_name : Windows-AMD64
228+ flag : Windows-AMD64
229+ - build_name : Windows-ARM64
230+ flag : Windows-ARM64
217231 steps :
218232 - name : Checkout
219233 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
220234
221235 - name : Download coverage artifact
222236 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
223237 with :
224- name : coverage-${{ matrix.build_os }}
238+ name : coverage-${{ matrix.build_name }}
225239 path : _coverage
226240
227241 - name : Debug coverage file
@@ -263,11 +277,17 @@ jobs:
263277 contents : read
264278 runs-on : ubuntu-latest
265279 steps :
266- - name : Download build artifact (Windows)
280+ - name : Download build artifact (Windows-AMD64)
281+ uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
282+ with :
283+ name : build-Windows-AMD64
284+ path : build-Windows-AMD64
285+
286+ - name : Download build artifact (Windows-ARM64)
267287 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
268288 with :
269- name : build-Windows
270- path : build-Windows
289+ name : build-Windows-ARM64
290+ path : build-Windows-ARM64
271291
272292 - name : Download build artifact (Linux)
273293 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
@@ -284,7 +304,8 @@ jobs:
284304 - name : Move artifacts
285305 run : |
286306 mkdir -p artifacts
287- mv -f build-Windows/test_libdisplaydevice.exe artifacts/test_libdisplaydevice-Windows.exe
307+ mv -f build-Windows-AMD64/test_libdisplaydevice.exe artifacts/test_libdisplaydevice-Windows-AMD64.exe
308+ mv -f build-Windows-ARM64/test_libdisplaydevice.exe artifacts/test_libdisplaydevice-Windows-ARM64.exe
288309 mv -f build-Linux/test_libdisplaydevice artifacts/test_libdisplaydevice-Linux
289310 mv -f build-macOS/test_libdisplaydevice artifacts/test_libdisplaydevice-macOS
290311
0 commit comments