@@ -18,10 +18,11 @@ permissions:
1818
1919env :
2020 CRTSYS_WINDOWS_SDK_VERSION : 10.0.22621.0
21+ CRTSYS_VS2026_WINDOWS_SDK_VERSION : 10.0.26100.0
2122
2223jobs :
23- build :
24- name : Build ${{ matrix.project }} ${{ matrix.arch }} ${{ matrix.config }}
24+ build-vs2022 :
25+ name : VS2022/v143 ${{ matrix.project }} ${{ matrix.arch }} ${{ matrix.config }}
2526 runs-on : windows-2022
2627 strategy :
2728 fail-fast : false
@@ -33,12 +34,21 @@ jobs:
3334 - project : app
3435 arch : x64
3536 config : Debug
37+ - project : app
38+ arch : ARM
39+ config : Debug
3640 - project : app
3741 arch : ARM64
3842 config : Debug
43+ - project : driver
44+ arch : x86
45+ config : Debug
3946 - project : driver
4047 arch : x64
4148 config : Debug
49+ - project : driver
50+ arch : ARM
51+ config : Debug
4252 - project : driver
4353 arch : ARM64
4454 config : Debug
@@ -48,20 +58,29 @@ jobs:
4858 - project : app
4959 arch : x64
5060 config : Release
61+ - project : app
62+ arch : ARM
63+ config : Release
5164 - project : app
5265 arch : ARM64
5366 config : Release
67+ - project : driver
68+ arch : x86
69+ config : Release
5470 - project : driver
5571 arch : x64
5672 config : Release
73+ - project : driver
74+ arch : ARM
75+ config : Release
5776 - project : driver
5877 arch : ARM64
5978 config : Release
6079
6180 steps :
6281 - uses : actions/checkout@v4
6382
64- - name : Show toolchain
83+ - name : Show VS2022 toolchain
6584 shell : pwsh
6685 run : |
6786 cmake --version
7291 Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\Include" -Directory |
7392 Select-Object -ExpandProperty Name
7493
75- - name : Build
94+ - name : Ensure WDK for x86 driver build
95+ if : matrix.project == 'driver' && matrix.arch == 'x86'
96+ shell : pwsh
97+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' -RequiredPlatforms x86
98+
99+ - name : Ensure WDK for ARM32 driver build
100+ if : matrix.project == 'driver' && matrix.arch == 'ARM'
101+ shell : pwsh
102+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' -RequiredPlatforms ARM
103+
104+ - name : Build v143
76105 shell : pwsh
77106 run : |
78107 $parameters = @{
@@ -111,13 +140,61 @@ jobs:
111140 test/cmake/app/build_x64/Debug/crtsys_test_app.exe
112141 test/cmake/app/build_x64/Debug/crtsys_test_app.pdb
113142
114- build-v142 :
115- name : Build v142 driver ${{ matrix.arch }} Debug
143+ build-vs2019 :
144+ name : VS2019/ v142 ${{ matrix.project }} ${{ matrix.arch }} ${{ matrix.config }}
116145 runs-on : windows-2022
117146 strategy :
118147 fail-fast : false
119148 matrix :
120- arch : [x64, ARM64]
149+ include :
150+ - project : app
151+ arch : x86
152+ config : Debug
153+ - project : app
154+ arch : x64
155+ config : Debug
156+ - project : app
157+ arch : ARM
158+ config : Debug
159+ - project : app
160+ arch : ARM64
161+ config : Debug
162+ - project : driver
163+ arch : x86
164+ config : Debug
165+ - project : driver
166+ arch : x64
167+ config : Debug
168+ - project : driver
169+ arch : ARM
170+ config : Debug
171+ - project : driver
172+ arch : ARM64
173+ config : Debug
174+ - project : app
175+ arch : x86
176+ config : Release
177+ - project : app
178+ arch : x64
179+ config : Release
180+ - project : app
181+ arch : ARM
182+ config : Release
183+ - project : app
184+ arch : ARM64
185+ config : Release
186+ - project : driver
187+ arch : x86
188+ config : Release
189+ - project : driver
190+ arch : x64
191+ config : Release
192+ - project : driver
193+ arch : ARM
194+ config : Release
195+ - project : driver
196+ arch : ARM64
197+ config : Release
121198
122199 steps :
123200 - uses : actions/checkout@v4
@@ -134,16 +211,127 @@ jobs:
134211 Get-ChildItem (Join-Path $installationPath 'VC\Tools\MSVC') -Directory |
135212 Select-Object -ExpandProperty Name
136213
137- - name : Build v142 driver
214+ - name : Ensure WDK for x86 driver build
215+ if : matrix.project == 'driver' && matrix.arch == 'x86'
216+ shell : pwsh
217+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' -RequiredPlatforms x86
218+
219+ - name : Ensure WDK for ARM32 driver build
220+ if : matrix.project == 'driver' && matrix.arch == 'ARM'
221+ shell : pwsh
222+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' -RequiredPlatforms ARM
223+
224+ - name : Build v142
225+ shell : pwsh
226+ run : |
227+ $parameters = @{
228+ Project = '${{ matrix.project }}'
229+ Architecture = '${{ matrix.arch }}'
230+ Configuration = '${{ matrix.config }}'
231+ WindowsSdkVersion = '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}'
232+ PlatformToolset = 'v142'
233+ }
234+
235+ if ($parameters.Project -eq 'driver') {
236+ $parameters.NoBreakpoint = $true
237+ }
238+
239+ ./scripts/ci/Build-CrtSys.ps1 @parameters
240+
241+ build-vs2026 :
242+ name : VS2026/v145 ${{ matrix.project }} ${{ matrix.arch }} ${{ matrix.config }}
243+ runs-on : windows-2025-vs2026
244+ strategy :
245+ fail-fast : false
246+ matrix :
247+ include :
248+ - project : app
249+ arch : x86
250+ config : Debug
251+ - project : app
252+ arch : x64
253+ config : Debug
254+ - project : app
255+ arch : ARM64
256+ config : Debug
257+ - project : driver
258+ arch : x86
259+ config : Debug
260+ - project : driver
261+ arch : x64
262+ config : Debug
263+ - project : driver
264+ arch : ARM64
265+ config : Debug
266+ - project : app
267+ arch : x86
268+ config : Release
269+ - project : app
270+ arch : x64
271+ config : Release
272+ - project : app
273+ arch : ARM64
274+ config : Release
275+ - project : driver
276+ arch : x86
277+ config : Release
278+ - project : driver
279+ arch : x64
280+ config : Release
281+ - project : driver
282+ arch : ARM64
283+ config : Release
284+
285+ steps :
286+ - uses : actions/checkout@v4
287+
288+ - name : Show VS2026 toolchain
289+ shell : pwsh
290+ run : |
291+ cmake --version
292+
293+ $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
294+ $installationPath = & $vswhere -latest -products * -property installationPath
295+ Write-Host "Visual Studio installation: $installationPath"
296+
297+ Get-ChildItem (Join-Path $installationPath 'VC\Tools\MSVC') -Directory |
298+ Select-Object -ExpandProperty Name
299+
300+ - name : Ensure WDK for VS2026 image
301+ shell : pwsh
302+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_VS2026_WINDOWS_SDK_VERSION }}'
303+
304+ - name : Ensure WDK for VS2026 x86 driver build
305+ if : matrix.project == 'driver' && matrix.arch == 'x86'
306+ shell : pwsh
307+ run : ./scripts/nuget/Ensure-CrtSysWdk.ps1 -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' -RequiredPlatforms x86
308+
309+ - name : Build v145
138310 shell : pwsh
139311 run : |
140- ./scripts/ci/Build-CrtSys.ps1 `
141- -Project driver `
142- -Architecture '${{ matrix.arch }}' `
143- -Configuration Debug `
144- -WindowsSdkVersion '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}' `
145- -PlatformToolset v142 `
146- -NoBreakpoint
312+ $windowsSdkVersion = '${{ env.CRTSYS_VS2026_WINDOWS_SDK_VERSION }}'
313+ $wdkVersion = ''
314+ if ('${{ matrix.project }}' -eq 'driver' -and '${{ matrix.arch }}' -eq 'x86') {
315+ $wdkVersion = '${{ env.CRTSYS_WINDOWS_SDK_VERSION }}'
316+ }
317+
318+ $parameters = @{
319+ Project = '${{ matrix.project }}'
320+ Architecture = '${{ matrix.arch }}'
321+ Configuration = '${{ matrix.config }}'
322+ WindowsSdkVersion = $windowsSdkVersion
323+ PlatformToolset = 'v145'
324+ }
325+
326+ if (-not [string]::IsNullOrWhiteSpace($wdkVersion)) {
327+ $parameters.WdkVersion = $wdkVersion
328+ }
329+
330+ if ($parameters.Project -eq 'driver') {
331+ $parameters.NoBreakpoint = $true
332+ }
333+
334+ ./scripts/ci/Build-CrtSys.ps1 @parameters
147335
148336 driver-load-test-preflight :
149337 name : Driver load test preflight
@@ -193,7 +381,7 @@ jobs:
193381 name : Driver load test x64
194382 if : github.event_name == 'workflow_dispatch' && inputs.run_driver_load_tests
195383 needs :
196- - build
384+ - build-vs2022
197385 - driver-load-test-preflight
198386 # Add the crtsys-driver-test label only to a self-hosted Windows x64 runner
199387 # that has TESTSIGNING enabled before boot.
0 commit comments