[CI] Install Windows 11 SDK 10.0.22621 for 32-bit ARM.#1964
[CI] Install Windows 11 SDK 10.0.22621 for 32-bit ARM.#1964Dead2 merged 1 commit intozlib-ng:developfrom
Conversation
WalkthroughAdds a conditional GitHub Actions step to install the Windows 11 SDK 10.0.22621.2428 for matrix entries containing "MSVC ARM " in Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Developer
participant GH as GitHub Actions
participant Job as Matrix Job (CMake)
participant PS as PowerShell
Dev->>GH: Push/PR triggers workflow
GH->>Job: Start matrix build
alt matrix.name contains "MSVC ARM "
Job->>PS: Run "Install Windows 11 SDK (ARM)" step
PS->>PS: Invoke-WebRequest (LinkId 2250105) -> save sdksetup.exe
PS->>PS: Unblock-File sdksetup.exe
PS->>PS: Execute sdksetup.exe (/q /norestart /ceip off)
Note right of PS: Installs Windows 11 SDK 10.0.22621.2428 silently
else other matrix entries
Note over Job: Step skipped
end
Job->>GH: Continue remaining build steps
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (3)
.github/workflows/cmake.yml (3)
715-723: Pin CMake to the SDK you install (avoid 22621/26100 mismatch).The ARM job still generates with
-A ARM,version=10.0.22621.0(Line 551), but this step installs SDK 10.0.26100.1742. If 22621 lacks ARM32 libs, CMake may select it (or fail if absent). Recommend pinning the ARM job to 10.0.26100 explicitly to ensure it uses the newly installed SDK.Example update outside this hunk:
# In matrix entry "Windows MSVC ARM No Test" cmake-args: -A ARM,version=10.0.26100.0 -DCMAKE_SYSTEM_VERSION=10.0.26100.0
716-716: Tighten the condition to match ARM (not ARM64) by toolchain, not name.Relying on the job name is brittle. Key off the CMake generator argument and ensure we exclude ARM64.
Apply this diff:
- if: contains(matrix.name, 'MSVC ARM ') + if: runner.os == 'Windows' && contains(matrix.cmake-args, '-A ARM,')
719-721: Optional: verify download integrity.Consider validating the SDK installer hash to guard against transient or tampered downloads.
Example snippet (fill the expected SHA-256):
$ExpectedSha256 = '<put-sdksetup.exe-sha256-here>' $ActualSha256 = (Get-FileHash .\sdksetup.exe -Algorithm SHA256).Hash if ($ActualSha256 -ne $ExpectedSha256) { throw "SDK installer SHA-256 mismatch. Expected $ExpectedSha256, got $ActualSha256" }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/cmake.yml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (120)
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
- GitHub Check: macOS Clang Native Instructions (ARM64)
- GitHub Check: macOS GCC UBSAN
- GitHub Check: macOS Clang ASAN (ARM64)
- GitHub Check: Windows MSVC ARM No Test
- GitHub Check: Windows ClangCl Win32
- GitHub Check: EL9 Clang S390X DFLTCC MSAN
- GitHub Check: Ubuntu GCC AARCH64 Compat No Opt UBSAN
- GitHub Check: Ubuntu GCC AARCH64 No NEON UBSAN
- GitHub Check: Ubuntu GCC Native Instructions (AVX)
- GitHub Check: Ubuntu GCC 14 LoongArch64
- GitHub Check: macOS GCC
- GitHub Check: macOS GCC Symbol Prefix & Compat
| - name: Install Windows 11 SDK (ARM) | ||
| if: contains(matrix.name, 'MSVC ARM ') | ||
| run: | | ||
| # Windows 11 SDK (10.0.26100.1742) | ||
| # https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/index-legacy | ||
| Invoke-WebRequest -Method Get -Uri https://go.microsoft.com/fwlink/p/?LinkId=2286561 -OutFile sdksetup.exe -UseBasicParsing | ||
| Unblock-File sdksetup.exe | ||
| Start-Process -Wait sdksetup.exe -ArgumentList "/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit" | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Fail fast if the SDK installer fails (capture and check ExitCode).
Start-Process -Wait won't fail the step on a non-zero installer exit code. Capture the process and assert on ExitCode so CI surfaces installation failures.
Apply this diff within this step:
- Start-Process -Wait sdksetup.exe -ArgumentList "/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit"
+ $args = @("/q","/norestart","/ceip off","/features","OptionId.WindowsSoftwareDevelopmentKit")
+ $process = Start-Process -FilePath .\sdksetup.exe -ArgumentList $args -Wait -PassThru -WindowStyle Hidden
+ if ($process.ExitCode -ne 0) { throw "Windows SDK installer failed with exit code $($process.ExitCode)" }🤖 Prompt for AI Agents
.github/workflows/cmake.yml around lines 715 to 723: the Windows 11 SDK
installer step uses Start-Process -Wait which does not fail the job on a
non-zero installer exit code; update the step to start the process, wait for it
to finish, capture its ExitCode and explicitly fail the step when ExitCode is
non-zero (for example throw or exit with the captured code) so CI surfaces
installation failures.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1964 +/- ##
===========================================
+ Coverage 81.59% 81.61% +0.02%
===========================================
Files 163 163
Lines 14073 14073
Branches 3164 3165 +1
===========================================
+ Hits 11483 11486 +3
+ Misses 1608 1603 -5
- Partials 982 984 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
7964bce to
9f99966
Compare
Summary by CodeRabbit