@@ -3,6 +3,10 @@ name: Windows Build
33on : [push, pull_request]
44
55jobs :
6+ strategy :
7+ matrix :
8+ preset : [ msvc_debug, msvc_release ]
9+
610 build :
711 runs-on : windows-2022
812 steps :
@@ -13,13 +17,82 @@ jobs:
1317 git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
1418 C:\vcpkg\bootstrap-vcpkg.bat -disableMetrics
1519
16- - name : Configure CMake
17- run : cmake --preset msvc_debug
20+ - name : Check MSVC version
21+ run : cl.exe
22+
23+ - name : Configure (${{ matrix.preset }})
1824 env :
1925 VCPKG_ROOT : C:\vcpkg
26+ shell : pwsh
27+ run : |
28+ $outputFile = "configure_output.txt"
29+
30+ cmake --preset ${{ matrix.preset }} 2>&1 | Tee-Object -FilePath $outputFile
31+ $exitCode = $LASTEXITCODE
32+
33+ if ($exitCode -eq 0) {
34+ Add-Content $env:GITHUB_STEP_SUMMARY "<details><summary>🟢 Configure Results (click to expand)</summary>"
35+ } else {
36+ Add-Content $env:GITHUB_STEP_SUMMARY "## 🔴 Configure Results"
37+ }
38+
39+ Add-Content $env:GITHUB_STEP_SUMMARY ""
40+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
41+ Get-Content $outputFile | Add-Content $env:GITHUB_STEP_SUMMARY
42+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
43+
44+ if ($exitCode -eq 0) {
45+ Add-Content $env:GITHUB_STEP_SUMMARY "</details>"
46+ }
47+
48+ exit $exitCode
49+
50+ - name : Build (${{ matrix.preset }})
51+ shell : pwsh
52+ run : |
53+ $outputFile = "build_output.txt"
54+
55+ cmake --build --preset ${{ matrix.preset }} 2>&1 | Tee-Object -FilePath $outputFile
56+ $exitCode = $LASTEXITCODE
57+
58+ if ($exitCode -eq 0) {
59+ Add-Content $env:GITHUB_STEP_SUMMARY "<details><summary>🟢 Build Results (click to expand)</summary>"
60+ } else {
61+ Add-Content $env:GITHUB_STEP_SUMMARY "## 🔴 Build Results"
62+ }
63+
64+ Add-Content $env:GITHUB_STEP_SUMMARY ""
65+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
66+ Get-Content $outputFile | Add-Content $env:GITHUB_STEP_SUMMARY
67+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
68+
69+ if ($exitCode -eq 0) {
70+ Add-Content $env:GITHUB_STEP_SUMMARY "</details>"
71+ }
72+
73+ exit $exitCode
74+
75+ - name : Test (${{ matrix.preset }})
76+ shell : pwsh
77+ run : |
78+ $outputFile = "test_output.txt"
79+
80+ ctest --preset ${{ matrix.preset }} --output-on-failure 2>&1 | Tee-Object -FilePath $outputFile
81+ $exitCode = $LASTEXITCODE
82+
83+ if ($exitCode -eq 0) {
84+ Add-Content $env:GITHUB_STEP_SUMMARY "<details><summary>🟢 Test Results (click to expand)</summary>"
85+ } else {
86+ Add-Content $env:GITHUB_STEP_SUMMARY "## 🔴 Test Results"
87+ }
88+
89+ Add-Content $env:GITHUB_STEP_SUMMARY ""
90+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
91+ Get-Content $outputFile | Add-Content $env:GITHUB_STEP_SUMMARY
92+ Add-Content $env:GITHUB_STEP_SUMMARY "```"
2093
21- - name : Build
22- run : cmake --build --preset msvc_debug
94+ if ($exitCode -eq 0) {
95+ Add-Content $env:GITHUB_STEP_SUMMARY "</details>"
96+ }
2397
24- - name : Test
25- run : ctest --preset msvc_debug
98+ exit $exitCode
0 commit comments