Skip to content

Update Windows 2022 CI images - #2807

Merged
nagilson merged 7 commits into
mainfrom
copilot/update-2022-images
Sep 28, 2026
Merged

nagilson merged 7 commits into
mainfrom
copilot/update-2022-images

Conversation

Copilot AI commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

The generic Windows 2022 images provide an outdated .NET 10 SDK. Align the pipelines with the architecture-specific images used by .NET SDK CI.

  • Public CI
    • Use windows.vs2022.amd64.open for build, lint, and packaging jobs.
  • Internal and release pipelines
    • Use windows.vs2022.amd64 for build, SDL, packaging, SBOM, and publishing jobs.
# Public
demands: ImageOverride -equals windows.vs2022.amd64.open

# Internal
image: windows.vs2022.amd64

Copilot AI linked an issue Sep 25, 2026 that may be closed by this pull request
Copilot AI and others added 3 commits September 25, 2026 22:41
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
Copilot AI changed the title [WIP] Update 2022 images for SDK version compliance Update Windows 2022 CI images Sep 25, 2026
Copilot AI requested a review from nagilson September 25, 2026 22:47

@JoeRobich JoeRobich left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Any reason to not move to vs2026?

@nagilson

Copy link
Copy Markdown
Member

No, the AI just didn't find them. @copilot We should use the 2026 images, not these images. We're also now seeing 'Unable to locate executable file: 'bash'. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.
' failures which need to be addressed.

Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>

Copilot AI commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

No, the AI just didn't find them. @copilot We should use the 2026 images, not these images. We're also now seeing 'Unable to locate executable file: 'bash'. Please verify either the file path exists o...

Updated the pools to windows.vs2026.amd64(.open) and converted the Windows lint/package Bash steps to PowerShell in 350c97a. I also removed unrelated lockfile churn from the net PR diff.

@nagilson

Copy link
Copy Markdown
Member

@copilot Ideally, this PR wouldn't reimplement the logic in powershell from bash. I think we need to instead look at if these images dont have bash, or if we can call bash differently in a way that works on these images. We want the diff to be minimal for version changes to the build images only plus any minimal change that makes it work - e.g. even if its having a separate yml we call that installs bash (but only if it is not actually available on the image - perhaps use other repos for compairson like dotnet/sdk?). This is evident in the new problems caused by your change:

Run `npm audit` for details.
Packaging as stable release...
Executing prepublish script 'yarn run vscode:prepublish'...
'yarn' is not recognized as an internal or external command,
operable program or batch file.
 ERROR  yarn failed with exit code 1
****
git --config-env=http.extraheader=env_var_http.extraheader fetch --force --no-tags --prune --prune-tags --progress --no-recurse-submodules origin   +refs/heads/*:refs/remotes/origin/* +refs/pull/2807/merge:refs/remotes/pull/2807/merge
fatal: unable to access 'https://github.com/dotnet/vscode-dotnet-runtime/': Could not resolve host: github.com
##[warning]Git fetch failed with exit code 128, back off 6.67 seconds before retry.
git --config-env=http.extraheader=env_var_http.extraheader fetch --force --no-tags --prune --prune-tags --progress --no-recurse-submodules origin   +refs/heads/*:refs/remotes/origin/* +refs/pull/2807/merge:refs/remotes/pull/2807/merge
fatal: unable to access 'https://github.com/dotnet/vscode-dotnet-runtime/': Could not resolve host: github.com
##[warning]Git fetch failed with exit code 128, back off 3.048 seconds before retry.
git --config-env=http.extraheader=env_var_http.extraheader fetch --force --no-tags --prune --prune-tags --progress --no-recurse-submodules origin   +refs/heads/*:refs/remotes/origin/* +refs/pull/2807/merge:refs/remotes/pull/2807/merge
##[warning]Failed to publish telemetry data. Error The HTTP request timed out after 00:01:40.
fatal: unable to access 'https://github.com/dotnet/vscode-dotnet-runtime/': Could not resolve host: github.com
##[error]Git fetch failed with exit code: 128

Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>

Copilot AI commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Ideally, this PR wouldn't reimplement the logic in powershell from bash. I think we need to instead look at if these images dont have bash, or if we can call bash differently in a way that wo...

Restored the original Bash scripts unchanged in 702e9c6. The shared setup now adds the image’s existing Git Bash directory to PATH and provisions Yarn 1.22.22 through Corepack. The rerun’s ESLint and VSIX packaging jobs both pass; the checkout/DNS failure also cleared without a code change.

Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
@nagilson
nagilson marked this pull request as ready for review September 28, 2026 22:48
Copilot AI balanced review requested due to automatic review settings September 28, 2026 22:48
@nagilson
nagilson enabled auto-merge (squash) September 28, 2026 22:49

Copilot AI left a comment

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.

Copilot review overview

🟡 Changes recommended

The lockfile has unresolved dependency selectors, and the documented target image differs from the implementation.

Review effort: Balanced
Findings: 1 Low severity

Open (1)
What changed in this PR

Migrates Windows CI from generic 2022 images to architecture-specific VS 2026 images and adds required tooling setup.

Changes:

  • Updates public, internal, and release Windows pools.
  • Installs Yarn and configures Git Bash.
  • Regenerates the runtime extension lockfile.
File Description
1pr-azure-pipeline.yml Updates public Windows CI pools.
1es-azure-pipeline.yml Updates internal Windows CI pools.
release.yml Updates release and publishing pools.
pipeline-templates/​install-node.yaml Adds Yarn and Git Bash setup.
vscode-dotnet-runtime-extension/​yarn.lock Rewrites the dependency lock graph.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread 1pr-azure-pipeline.yml
displayName: '⚛️ Install Node.js' No newline at end of file
displayName: '⚛️ Install Node.js'
- script: corepack enable && corepack install --global yarn@1.22.22
displayName: '🧶 Install Yarn'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are we getting value out of using yarn instead of npm? Seems like it adds complexity.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It does, I forget why we did this and things might have changed but there is some NPM limitation that made it nonfunctional, at least 2 years ago. We have to use npm too because yarn doesnt have support for vsts auth. CDK does the same thing, unless things changed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

#617 outlines why, it mentions there's a VSCE limitation where it required yarn and didn't work with npm. I think it has to do with the multi-folder layout we use but not quite remember. I'm pretty sure I explained this in more detail in a comment somewhere.

@nagilson
nagilson merged commit 4ed0c49 into main Sep 28, 2026
9 checks passed
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.

Update 2022 images

4 participants