Skip to content

Bump Windows image version in GitHub Actions to 2025#806

Merged
laurynas-biveinis merged 1 commit into
masterfrom
windows-2025
Nov 20, 2025
Merged

Bump Windows image version in GitHub Actions to 2025#806
laurynas-biveinis merged 1 commit into
masterfrom
windows-2025

Conversation

@laurynas-biveinis
Copy link
Copy Markdown
Collaborator

@laurynas-biveinis laurynas-biveinis commented Nov 19, 2025

Summary by CodeRabbit

  • Chores
    • Updated build environment to the latest Windows runner.
    • Added an automated static analysis step (cppcheck) to the CI pipeline; cppcheck is now installed via the package manager during setup and runs before dependency installation.

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

@laurynas-biveinis laurynas-biveinis self-assigned this Nov 19, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 19, 2025

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly matches the main change: updating the Windows runner image from 2022 to 2025 in the GitHub Actions workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch windows-2025

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 331b950 and 1681723.

📒 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-69: Verify the cppcheck workaround is still necessary on windows-2025.

The new step deletes a cppcheck binary from Strawberry Perl and reinstalls it via Chocolatey. This appears to be a workaround for a version/path conflict, but confirm this is still needed on the windows-2025 image. If the conflict is resolved or cppcheck is handled differently on the newer image, remove this step to keep the workflow lean.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6f71911 and 331b950.

📒 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 cppcheck installation step. This isn't mentioned in the PR description. A few questions:

  1. Is this intentional and part of a larger static analysis improvement?
  2. Is cppcheck actually invoked somewhere in the workflow (I don't see it being used in the provided code)?
  3. Should this be a separate PR for clarity?

Additionally, verify that Chocolatey's cppcheck package is compatible with windows-2025 and that the installation doesn't fail silently.

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.

Workaround broken cppcheck installation by installing one from Chocolatey
@sonarqubecloud
Copy link
Copy Markdown

@laurynas-biveinis laurynas-biveinis merged commit 5f11a72 into master Nov 20, 2025
235 of 237 checks passed
@laurynas-biveinis laurynas-biveinis deleted the windows-2025 branch November 20, 2025 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant