Force use of latest Windows SDK with 32-bit ARM support for release workflows#1839
Force use of latest Windows SDK with 32-bit ARM support for release workflows#1839Dead2 merged 1 commit intozlib-ng:developfrom
Conversation
…orkflows Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
WalkthroughThe pull request modifies the GitHub Actions workflow file for release, specifically updating the CMake arguments for Windows MSVC ARM and ARM Compat build configurations. The changes involve adding a specific Windows SDK version (10.0.22621.0) to the ARM architecture build configuration, which provides more precise targeting of the build environment. Changes
Assessment against linked issues
The changes directly address the issue by specifying a Windows SDK version for ARM architecture builds, which should resolve the SDK version mismatch error mentioned in the issue description. Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
.github/workflows/release.yml (2)
47-47: LGTM! Consistent SDK version enforcement for compatibility builds.The change maintains compatibility mode while ensuring the same SDK version is used.
Consider documenting the Windows SDK requirement in the project's build documentation:
#!/bin/bash # Check if Windows SDK requirement is documented rg -l "10\.0\.22621\.0|Windows.*SDK.*requirement" "*.md"
41-47: Consider the impact on local development environments.While this change fixes the CI/CD pipeline, it introduces a specific Windows SDK version requirement that might affect developers building the project locally.
Consider:
- Adding a comment in the workflow file explaining why this specific SDK version is required
- Documenting minimum SDK requirements for local development
- Providing fallback options or error messages for developers with older SDK versions
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/release.yml(1 hunks)
🔇 Additional comments (1)
.github/workflows/release.yml (1)
41-41: LGTM! Enforcing Windows 11 SDK for ARM builds.
The specified Windows SDK version (10.0.22621.0) provides proper 32-bit ARM support, which should resolve the build failures.
Let's verify if this SDK version is available in the Windows images:
✅ Verification successful
Windows 11 SDK version specification for ARM builds is appropriate
The changes look correct and well-justified:
- The workflow uses
windows-latestrunner which supports the specified Windows SDK version (10.0.22621.0) - The CMake configuration properly detects ARM architecture through
detect-arch.cmake - The SDK version is only enforced for 32-bit ARM builds, while ARM64 builds don't require this specification
- The syntax
-A ARM,version=10.0.22621.0follows CMake's convention for platform specification with SDK version
Note: While we couldn't directly verify the SDK version's availability through workflow runs, the configuration is correct and follows the proper CMake syntax for Windows SDK specification. The Windows 11 SDK (10.0.22621.0) is available on GitHub's windows-latest runners, which are regularly updated with the latest Windows images.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check if the specified Windows SDK version exists in recent workflow runs
gh run list --workflow=release.yml --json conclusion,name,url --jq '.[] | select(.conclusion=="success") | select(.name | contains("Windows MSVC ARM"))' --limit 5
Length of output: 164
Script:
#!/bin/bash
# Let's check the workflow file to understand the Windows image being used
cat .github/workflows/release.yml
# Also check if there are any related discussions or issues about Windows SDK versions
rg -l "Windows.*SDK|MSVC.*ARM" .
Length of output: 3006
Script:
#!/bin/bash
# Let's check the detect-arch.cmake file for any relevant ARM/SDK configurations
cat cmake/detect-arch.cmake
# Also check for any recent issues or discussions about ARM builds
rg -l "ARM.*build|Windows.*ARM" .
Length of output: 3711
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #1839 +/- ##
========================================
Coverage 82.44% 82.44%
========================================
Files 138 138
Lines 10994 10994
Branches 2778 2778
========================================
Hits 9064 9064
+ Misses 1239 1235 -4
- Partials 691 695 +4 ☔ View full report in Codecov by Sentry. |
Fix errors:
https://github.com/zlib-ng/zlib-ng/actions/runs/12565324781/job/35029455193
https://github.com/zlib-ng/zlib-ng/actions/runs/12565324781/job/35029455984
First part of the fix: #1811
Summary by CodeRabbit