Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/msvc-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ permissions: {}

jobs:
build:
runs-on: windows-2022
runs-on: windows-2025
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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:

  1. windows-2025 is currently available as a GitHub Actions runner image
  2. All existing CMake presets and build configurations (especially MSVC, clang-cl, ASan variants) are compatible with the newer Windows/toolchain environment
  3. 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:
    1. Build with /fsanitize=address (and /Zi for debug info when useful). [2][5].
    2. 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].
    3. If using CMake/other build systems, only add the flag to compile (not the MSVC linker) per typical CMake/MSVC guidance. [7].
    4. 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:

  1. Verify the component is present in the windows-2025 image SBOM (check the actions/runner-images repo)
  2. Add a step to install the Visual Studio C++ AddressSanitizer component at runtime
  3. 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.


env:
EXAMPLE_PRESETS: >-
Expand Down Expand Up @@ -63,6 +63,11 @@ jobs:
- name: Setup command line tools
uses: ilammy/msvc-dev-cmd@v1 # zizmor: ignore[unpinned-uses]

- name: Install cppcheck
run: |
del C:\Strawberry\c\bin\cppcheck.exe
choco install cppcheck -y

- name: Install dependencies
run: |
vcpkg install boost-accumulators boost-stacktrace:x64-windows-static `
Expand Down
Loading