Skip to content

Migrate GitHub CI off VS 2022, add C++20 module test, dynamic v143/v145 toolset#1601

Open
Copilot wants to merge 2 commits into
masterfrom
copilot/explore-codebase-fix-ci-errors
Open

Migrate GitHub CI off VS 2022, add C++20 module test, dynamic v143/v145 toolset#1601
Copilot wants to merge 2 commits into
masterfrom
copilot/explore-codebase-fix-ci-errors

Conversation

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

What's this all about?

The windows-2025 runner no longer ships the VS 2022 (v143) build tools, breaking every CI leg pinned to it. This migrates GitHub Actions to VS 2026 / v145 while keeping the OneBranch (VS 2022) pipelines buildable via a toolset that adapts to the available Visual Studio.

.github/workflows/ci.yml

  • Dropped the windows-2025 + v143 toolchain from the build, test, and nuget-test matrices; windows-2025-vs2026 + v145 is now the sole MSVC toolset.
  • Pinned the previously windows-latest jobs (build-msvc-natvis, build-nuget) to windows-2025-vs2026; natvis passes PlatformToolset=v145 explicitly.
  • Removed the now-dead "Remove module test projects on v143" workaround.
  • Added test_cpp20_module to the test matrix, excluding clang-cl (C++20 named modules require MSVC v145).

Directory.Build.Props

  • Toolset now selected dynamically: base v143, upgraded to v145 when VisualStudioVersion >= 18.0. The base-plus-override keeps a valid value if VisualStudioVersion is unset.
<PlatformToolset>v143</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' &gt;= '18.0'">v145</PlatformToolset>

test/nuget/TestProxyStub/TestProxyStub.vcxproj

  • Removed the hardcoded <PlatformToolset> so it inherits the dynamic default (v143 on OneBranch, v145 on VS 2026).

Docs

  • Updated .github/instructions/cppwinrt.instructions.md to describe the VisualStudioVersion-based toolset selection.

The OneBranch / ADO pipelines under .pipelines/* are intentionally untouched, as those images update on a different cadence; the dynamic default is what lets them keep building the non-module projects on v143.

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.

2 participants