Skip to content

Engineering - start the Windows chat-lib job from the workspace image - #347287

Merged
Ladislau Szomoru (lszomoru) merged 1 commit into
mainfrom
lszomoru/agents/chat-lib-windows-workspace-image
Nov 10, 2026
Merged

Ladislau Szomoru (lszomoru) merged 1 commit into
mainfrom
lszomoru/agents/chat-lib-windows-workspace-image

Conversation

@lszomoru

Copy link
Copy Markdown
Member

Follow-up of #347275, for #345429: chat-lib - Test (Windows) is the last job of pr.yml that installs the workspace dependencies without starting from a workspace image, apart from Windows / Electron-Smoke (WSL) on the 1ES pool.

What changes

  • Runner: chat-lib - Test (Windows) moves from windows-2025 to vscode-large-runners-windows-8-core. An image can only be used on the runners that build it, as it holds the workspace at the path of their workspaces.
  • Image steps: like chat-lib - Test (Linux), the job reuses the download, Node.js and restore steps of Compile & Hygiene (YAML anchors), gets actions: read to find and download the image, and checks out with clean: false when it mounted one.
  • Without an image (none of main, a pull request to a release branch, other native build inputs, or an error or timeout of the restore), it installs everything with a plain pnpm install, without the pnpm store cache, like the other pr.yml jobs that use the images (restore-pnpm-store: 'false').
  • Windows: it sets GODEBUG=winreadlinkvolume=1, like Copilot - Test (Windows) and pr-win32-test.yml, so that esbuild resolves pnpm's junctions on the image, which is mounted without a drive letter.
  • Guard test and docs: workspaceImage.test.ts checks that the job downloads the image scripts like the jobs that build the images, and the workspace image README no longer lists it as an exception.

Reviewers should know

  • The job now takes one of the larger Windows runners on every pull request that changes Copilot, which the PR checks share with the Windows test jobs.
  • In recent runs, the job took about 2.5–3 minutes on windows-2025, most of it in the Test chat-lib step, which installs Copilot and chat-lib. Copilot - Test (Windows), which installs the same projects, restored the image in about 33 s and installed in about 7 s on the larger runner.
  • Without an image, the job now downloads every package instead of restoring the store cache. The manual chat-lib-package.yml workflow still uses the store cache, so pr-pnpm-store.yml keeps warming pnpm-store-copilot-windows.

How to test

This pull request's own checks run the job: its summary reports that it restored the image, or a Workspace image warning when it installed everything instead.

  • cd build && node --test lib/test/workspaceImage.test.ts lib/test/detectChanges.test.ts lib/test/detectMissingCaches.test.ts lib/test/agentHostTestSelection.test.ts: passed, 36 tests.
  • cd build && pnpm run typecheck: passed.
  • ./node_modules/.bin/eslint build/lib/test/workspaceImage.test.ts: passed.
  • actionlint -shellcheck= .github/workflows/pr.yml (actionlint 1.7.12): passed, apart from the custom runner labels.
  • Not run locally: the job itself on an image, which this pull request's checks cover.

🤖 Authored with GitHub Copilot on behalf of Ladislau Szomoru (@lszomoru).

chat-lib - Test (Windows) moves from windows-2025 to the larger Windows runners, whose workspaces have the path of the workspace images, and mounts the image before the checkout like chat-lib - Test (Linux). Without an image, or on any error, it installs everything without the pnpm store cache, like the other jobs of pr.yml that use the images. It sets GODEBUG=winreadlinkvolume=1 like the other Windows jobs on an image.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 10, 2026 09:56

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.

🟢 Approval recommended

No active review issues remain for the change extending workspace-image reuse to the Windows chat-lib PR job.

No open issues 🎉

What changed in this PR

Extends workspace-image reuse to the Windows chat-lib PR job, following the earlier migration of other dependency-installing jobs.

Changes:

  • Moves the job to the compatible larger Windows runner and reuses shared image-restore steps.
  • Preserves restored dependencies, enables Windows junction resolution, and disables pnpm store-cache restoration.
  • Extends the guard test and updates documentation to include Windows chat-lib.

No actionable findings remain. Image-backed Windows execution was not tested locally and relies on the PR checks.

File Description
build/​lib/​test/​workspaceImage.test.ts Adds Windows chat-lib to the image-script consistency check.
.github/​workflows/​workspace_image/​README.md Removes Windows chat-lib from the image-adoption exceptions.
.github/​workflows/​pr.yml Configures Windows chat-lib to restore and use workspace images.

Review effort: Balanced

@lszomoru
Ladislau Szomoru (lszomoru) merged commit ba3e3c8 into main Nov 10, 2026
53 checks passed
@lszomoru
Ladislau Szomoru (lszomoru) deleted the lszomoru/agents/chat-lib-windows-workspace-image branch November 10, 2026 10:20
@vs-code-engineering vs-code-engineering Bot added this to the 1.147.0 milestone Nov 10, 2026
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.

4 participants