Pin cpp_ci to windows-2022 to fix VS2026 toolset/LTCG CI failures - #205
Merged
Conversation
Gudge (MGudgin)
force-pushed
the
user/gudge/fix-ci-ltcg-crash
branch
from
July 11, 2026 05:05
cbdd6a5 to
1072a87
Compare
Gudge (MGudgin)
force-pushed
the
user/gudge/fix-ci-ltcg-crash
branch
from
July 11, 2026 05:11
1072a87 to
d407baa
Compare
This PR fixes the `cpp_ci` build failures by pinning the C++ CI jobs to the `windows-2022` runner image (Visual Studio 2022 / v143 toolset) instead of `windows-latest`. The `windows-latest` image moved to Visual Studio 2026 (v18), which does not reliably provide the `v143` (VS2022) build tools that every project in the repo pins, so builds intermittently fail with `MSB8020: The build tools for Visual Studio 2022 (Platform Toolset = 'v143') cannot be found`; on runs where a v143 project did link, the VS2026 LTCG backend intermittently crashed with `LNK1257: code generation failed`. Both symptoms share the same root cause (the runner image change), which is why they appear on unrelated, content-free PRs (#203, #204). Details * `.github/workflows/cpp_ci.yml`: change all three jobs (build-edl-code-gen, run-edl-code-gen-tests, build-sdk) from `runs-on: windows-latest` to `runs-on: windows-2022`, with a comment explaining the pin. Tests * Confirmed from CI logs that failing jobs resolved to VS2026 (`...\Microsoft Visual Studio\18\Enterprise\...`, MSBuild 18.7.8): failing runs used the `v180` targets and reported MSB8020 for v143, while passing runs used the `v170` (v143) targets. * `windows-2022` is a GitHub-supported runner image that ships VS2022 / v143, so it deterministically provides the pinned toolset. * Validated cpp_ci.yml is well-formed YAML. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 515cf42c-8709-4378-9d8a-8680e03acd18
Gudge (MGudgin)
force-pushed
the
user/gudge/fix-ci-ltcg-crash
branch
from
July 11, 2026 05:12
d407baa to
1ffd931
Compare
Branden Bonaby (bbonaby)
approved these changes
Jul 14, 2026
Branden Bonaby (bbonaby)
left a comment
Contributor
There was a problem hiding this comment.
oh thanks, added this issue #206 so we don't forget to look into this
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes the
cpp_cibuild failures by pinning the C++ CI jobs to thewindows-2022runner image (Visual Studio 2022 / v143 toolset) instead ofwindows-latest.The
windows-latestimage moved to Visual Studio 2026 (v18), which does not reliably provide thev143(VS2022) build tools that every project in the repo pins, so builds intermittently fail withMSB8020: The build tools for Visual Studio 2022 (Platform Toolset = 'v143') cannot be found; on runs where a v143 project did link, the VS2026 LTCG backend intermittently crashed withLNK1257: code generation failed. Both symptoms share the same root cause (the runner image change), which is why they appear on unrelated, content-free PRs (#203, #204).Details
.github/workflows/cpp_ci.yml: change all three jobs (build-edl-code-gen,run-edl-code-gen-tests,build-sdk) fromruns-on: windows-latesttoruns-on: windows-2022, with a comment explaining the pin.Tests
...\Microsoft Visual Studio\18\Enterprise\..., MSBuild 18.7.8): failing runs used thev180targets and reported MSB8020 for v143, while passing runs used thev170(v143) targets.windows-2022is a GitHub-supported runner image that ships VS2022 / v143, so it deterministically provides the pinned toolset.cpp_ci.ymlis well-formed YAML.Note
pull_requestruns use the workflow file from the PR's head branch, so #203/#204 pick up this pin once they are rebased or retargeted onto this branch.