Repository navigation
Update Windows 2022 CI images - #2807
Conversation
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>
JoeRobich
left a comment
There was a problem hiding this comment.
Any reason to not move to vs2026?
|
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. |
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
Updated the pools to |
|
@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: |
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
Restored the original Bash scripts unchanged in |
Co-authored-by: nagilson <23152278+nagilson@users.noreply.github.com>
There was a problem hiding this comment.
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
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.
| 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' |
There was a problem hiding this comment.
Are we getting value out of using yarn instead of npm? Seems like it adds complexity.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
#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.

The generic Windows 2022 images provide an outdated .NET 10 SDK. Align the pipelines with the architecture-specific images used by .NET SDK CI.
windows.vs2022.amd64.openfor build, lint, and packaging jobs.windows.vs2022.amd64for build, SDL, packaging, SBOM, and publishing jobs.