Bump Windows image version in GitHub Actions to 2025#806
Conversation
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (1)
⏰ 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). (10)
🔇 Additional comments (1)
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 |
6f71911 to
331b950
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/msvc-build.yml(2 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). (10)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (1)
.github/workflows/msvc-build.yml (1)
66-67: Clarify the intent of the cppcheck installation addition.The PR objective states only "Bump Windows image version to 2025", but you're also adding a new
cppcheckinstallation step. This isn't mentioned in the PR description. A few questions:
- Is this intentional and part of a larger static analysis improvement?
- Is
cppcheckactually invoked somewhere in the workflow (I don't see it being used in the provided code)?- Should this be a separate PR for clarity?
Additionally, verify that Chocolatey's
cppcheckpackage is compatible with windows-2025 and that the installation doesn't fail silently.
| jobs: | ||
| build: | ||
| runs-on: windows-2022 | ||
| runs-on: windows-2025 |
There was a problem hiding this comment.
🧩 Analysis chain
Verify windows-2025 runner availability and build compatibility.
The upgrade from windows-2022 to windows-2025 is straightforward, but you need to confirm:
windows-2025is currently available as a GitHub Actions runner image- All existing CMake presets and build configurations (especially MSVC, clang-cl, ASan variants) are compatible with the newer Windows/toolchain environment
- No breaking changes in vcpkg or other dependencies used by the project
🌐 Web query:
Is windows-2025 available as a GitHub Actions runner image?
💡 Result:
Yes. GitHub-hosted runner image windows-2025 is available — you can use runs-on: windows-2025 (GA since April 8, 2025). [1][2]
Sources:
[1] GitHub Changelog: macOS 15 and Windows 2025 images are now generally available.
[2] GitHub Actions docs: GitHub-hosted runners reference (lists windows-2025).
🏁 Script executed:
#!/bin/bash
# Examine the full workflow file to understand build configs and dependencies
cat .github/workflows/msvc-build.yml
Length of output: 3843
</web_search>
🌐 Web query:
windows-2025 GitHub Actions MSVC ASan Address Sanitizer compatibility
💡 Result:
Short answer: Yes — MSVC's AddressSanitizer is supported and can be used on GitHub Actions' windows-2025 runners, but you must enable it in your build and ensure the ASan runtime is available at runtime.
Key points and steps
- MSVC has supported ASan since Visual Studio 2019 (16.9+) and it’s maintained in later VS/MSVC releases; you enable it with the compiler flag /fsanitize=address (and the toolchain/linker will normally pull the ASan runtime). [1][2].
- GitHub-hosted windows-2025 runner images are available and include Visual Studio / MSVC toolchains used on Actions images; you can target them with runs-on: windows-2025. [3][4].
- Practical checklist for CI on windows-2025:
- Build with /fsanitize=address (and /Zi for debug info when useful). [2][5].
- Ensure the C++ AddressSanitizer component/runtime (clang_rt.asan*.dll / .lib) is present on the runner — either installed with Visual Studio on the image or copied onto PATH before running tests. If your build uses static CRT (/MT) you may need the ASan DLL on PATH per MSVC docs. [2][6].
- If using CMake/other build systems, only add the flag to compile (not the MSVC linker) per typical CMake/MSVC guidance. [7].
- Add/adjust ASAN_OPTIONS or environment vars as needed for behavior (continue_on_error, etc.) documented by MSVC/ASan. [5].
Notes and caveats
- The runner images evolve; confirm which Visual Studio/MSVC version is installed on the specific windows-2025 image you use (the runner-images repo / GitHub Actions docs list image software and releases). If your workflow requires a specific VS version or the C++ AddressSanitizer component, verify that image release or install the Build Tools/component at runtime. [3][4].
- Some runner image issues (e.g., WSL presence) and component changes are tracked in the runner-images repo — check it if you hit missing-component errors. [4][8].
If you want, I can: (A) check the exact Visual Studio/MSVC version and whether the C++ AddressSanitizer component is present in the current windows-2025 image build you plan to use, or (B) produce a minimal GitHub Actions job YAML that builds and runs MSVC ASan on windows-2025. Which would you prefer?
Sources
[1] Microsoft C++ Team blog — AddressSanitizer for Windows / MSVC history and usage.
[2] Microsoft docs & blog posts about MSVC ASan runtime behavior and /fsanitize=address usage.
[3] GitHub Docs — GitHub-hosted runners reference (windows-2025 label).
[4] actions/runner-images (GitHub) — windows-2025 image releases and notes.
[5] Visual Studio release notes / ASan continue_on_error doc.
[6] Visual Studio installer component ID list (C++ AddressSanitizer component).
[7] CMake/MSVC guidance (example projects referencing /fsanitize usage).
[8] runner-images issues (reports about image components).
</web_search>
🌐 Web query:
github actions windows-2025 runner image Visual Studio AddressSanitizer component installed
💡 Result:
Short answer: GitHub's windows-2025 runner image does not document that the Visual Studio "C++ AddressSanitizer" component (component id Microsoft.VisualStudio.Component.VC.ASAN) is preinstalled. Check the image SBOM or the actions/runner-images Windows-2025 software list to confirm for a specific image build — if ASan isn't listed you must install/enable it in your workflow or install the VS component at runtime. [1][2][3]
How to verify / next steps
- View the windows-2025 image software list or release notes in the actions/runner-images repo (they publish per-build software lists and SBOMs). Use that to see whether Microsoft.VisualStudio.Component.VC.ASAN or equivalent is present. [1][2]
- Microsoft documents the component id as Microsoft.VisualStudio.Component.VC.ASAN (C++ AddressSanitizer) in the Visual Studio installer. If it's not on the runner you can install the component via the Visual Studio Installer or add the MSVC ASan runtime/tooling in your job. [4]
Sources
- actions/runner-images releases / Windows Server 2025 image notes (image/SBOM published there). [1][2]
- GitHub Docs on hosted runner images / SBOMs. [3]
- Visual Studio workload/component ids (Microsoft.VisualStudio.Component.VC.ASAN = C++ AddressSanitizer). [4]
References
[1] https://github.com/actions/runner-images/releases
[2] actions/runner-images#11742 (Windows Server 2025 GA notes)
[3] https://docs.github.com/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
[4] https://learn.microsoft.com/visualstudio/install/workload-component-id-vs-professional (Visual Studio component IDs)
</web_search>
🌐 Web query:
vcpkg windows-2025 boost compatibility
💡 Result:
Short answer: Yes — the GitHub Actions windows-2025 runner includes vcpkg and you can install/build Boost with vcpkg on that image, but ensure the vcpkg triplet/MSVC toolset you use matches the runner's Visual Studio/MSVC versions (use x64-windows or the matching triplet/manifest and the vcpkg toolchain file in CMake). [1][2][3][4]
What to do (quick):
- On windows-2025 the image ships vcpkg (recent build). Use vcpkg exactly as usual: bootstrap if needed and either vcpkg install boost:x64-windows or list boost-* components in a vcpkg manifest. [2][3]
- In CMake use -DCMAKE_TOOLCHAIN_FILE=<vcpkg_root>/scripts/buildsystems/vcpkg.cmake and -DVCPKG_TARGET_TRIPLET=. [4]
- If you hit build/toolset mismatch errors, confirm which Visual Studio/MSVC version is on the windows-2025 image and pick the triplet/MSVC toolset accordingly or install the required toolset in the job. [1][2]
Sources:
- GitHub-hosted runners / windows-2025 image details. [1][3]
- Actions runner-images release notes showing vcpkg builds on the Windows 2025 image. [2]
- vcpkg Boost ports and manifest usage (install boost or use manifest mode). [4][3]
ASan component is not preinstalled on windows-2025 — your ASan presets will fail.
The windows-2025 runner does not document that the Visual Studio "C++ AddressSanitizer" component (Microsoft.VisualStudio.Component.VC.ASAN) is preinstalled. Your workflow includes two ASan presets (msvc-debug-asan and msvc-release-asan) in the matrix, but you have no step to install or enable the component.
Either:
- Verify the component is present in the windows-2025 image SBOM (check the actions/runner-images repo)
- Add a step to install the Visual Studio C++ AddressSanitizer component at runtime
- Remove the ASan presets from the matrix
vcpkg and boost build fine on windows-2025 with standard usage, so no issues there.
🤖 Prompt for AI Agents
In .github/workflows/msvc-build.yml around line 14, the workflow uses runs-on:
windows-2025 but the Visual Studio "C++ AddressSanitizer" component
(Microsoft.VisualStudio.Component.VC.ASAN) is not guaranteed to be preinstalled,
so the ASan matrix entries will fail; fix by either (A) verifying the component
is present in the windows-2025 image SBOM and keep presets, (B) add a pre-build
workflow step that installs/enables the Visual Studio C++ AddressSanitizer
component (Microsoft.VisualStudio.Component.VC.ASAN) using the Visual Studio
installer before any ASan build runs, or (C) remove the msvc-debug-asan and
msvc-release-asan presets from the matrix—choose one and update the workflow
accordingly.
Workaround broken cppcheck installation by installing one from Chocolatey
331b950 to
1681723
Compare
|



Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.