From f3618ac5d8b9a811b1fd4add8f9f254e39ce2f41 Mon Sep 17 00:00:00 2001 From: gengjiawen Date: Wed, 30 Sep 2026 16:28:13 +0800 Subject: [PATCH 1/2] ci: use Visual Studio 2026 on windows-11-arm The windows-11-arm runner image moved to windows-11-vs2026-arm64, which only ships Visual Studio 2026. Passing --msvs-version=2022 makes find VS reject it ("msvs_version does not match this version"), so the visual-studio (windows-11-arm, 2022) job has failed on every run since 2026-09-14. --- .github/workflows/visual-studio.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/visual-studio.yml b/.github/workflows/visual-studio.yml index 25c8d389d8..d7bbc18f02 100644 --- a/.github/workflows/visual-studio.yml +++ b/.github/workflows/visual-studio.yml @@ -21,7 +21,7 @@ jobs: - os: windows-2025 msvs-version: 2026 - os: windows-11-arm - msvs-version: 2022 # Fix this when Visual Studio 2025 is released + msvs-version: 2026 runs-on: ${{ matrix.os }} timeout-minutes: 30 steps: From eb17eaf17504b0dfb0b5927501749319ac667330 Mon Sep 17 00:00:00 2001 From: gengjiawen Date: Wed, 30 Sep 2026 16:49:06 +0800 Subject: [PATCH 2/2] test: mock VSSetup lookup in find-visualstudio tests allVsVersions() stubbed findVisualStudio2017OrNewerUsingSetupModule, which no longer exists since #2959, so 18 tests spawned a real PowerShell to check for the VSSetup module. On windows-11-vs2026-arm64 under pwsh each spawn takes ~23s, pushing tests that make two of them past the 30s timeout. --- test/test-find-visualstudio.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/test-find-visualstudio.js b/test/test-find-visualstudio.js index 5f1bbe768c..85b8dd135f 100644 --- a/test/test-find-visualstudio.js +++ b/test/test-find-visualstudio.js @@ -674,9 +674,7 @@ describe('find-visualstudio', function () { } function allVsVersions (finder) { - finder.findVisualStudio2017OrNewerUsingSetupModule = async () => { - return null - } + finder.findNewVSUsingSetupModule = async () => null finder.findVisualStudio2017 = async () => { const data0 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures', 'VS_2017_Unusable.txt')))