Repository navigation
fix(ci): install VS 2022 Build Tools for Node 22 on windows-arm64 - #222
Merged
Merged
Conversation
The windows-11-arm runner label moved to the VS 2026 image (actions/runner-images#14602). Node 22's vcbuild.bat only looks for VS 2022, so the arm64 Node 22 build fails with "Failed to find a suitable Visual Studio installation".
There was a problem hiding this comment.
🔵 Needs a closer look
The linked validation job is still installing Build Tools, so successful installation and subsequent Node 22 ARM64 compilation remain unconfirmed.
No open issues 🎉
What changed in this PR
This PR addresses Node 22 ARM64 build failures by installing the VS 2022 toolchain missing from the updated Windows runner image.
Changes:
- Install VS 2022 Build Tools only for the ARM64 + Node 22 matrix job.
- Include VC tools, ARM64 compilers, and ARM64 ATL.
- Accept installer exit codes
0and3010, while propagating other failures.
| File | Description |
|---|---|
.github/workflows/build-windows.yml |
Adds conditional VS 2022 installation before building Node 22 for Windows ARM64. |
Review effort: Balanced
danskmt
approved these changes
Oct 22, 2026
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.
Problem
windows-arm64 (22)fails every time (example):The
windows-11-armlabel now uses thewindows-11-vs2026-arm64image, which has only VS 2026 (actions/runner-images#14602, finished Sept 30). Node 22'svcbuild.batonly looks for VS 2022 ([17.6,18.0)). Node 24 and 26 also look for VS 2026, so they still pass. No hosted arm64 Windows image with VS 2022 is left.Fix
For the arm64 + Node 22 job only, install VS 2022 Build Tools with the VC tools workload, ARM64 compilers and ARM64 ATL. Node 22's vswhere query uses
-products *, so it finds a Build Tools install.Considered instead:
vcbuild.batto accept VS 2026 (port of build: add support for Visual Studio 2026 nodejs/node#60727, ~30 lines). Node 22's gyp already supports VS 2026, so this would be enough to find the compiler. But upstream keeps v22 on VS 2022 on purpose (the VS 2026 tooling/doc PRs aredont-land-on-v22.x), so Node 22 is never built with MSVC 18 and its older V8 may not compile with it. It would also add a hunk to carry into every new v22 patch, and our binary would use a different compiler than the official release.Test
Windows workflow run on this branch: https://github.com/yao-pkg/pkg-fetch/actions/runs/39779279895