Files
Logan RamosandCopilot f191e0197e ci: run Windows PR checks on vscode-large-runners-windows-8-core (#343812)
* ci: run Windows PR checks on vscode-large-runners-windows-8-core

Every Windows 1ES job waited for a runner in about 1 of 4 PR runs (p90 7.4 min),
because the 1ES pool scales out slowly at peak times. The 8-core larger runners
have the same CPU and memory, start in seconds, and have a 200 runner limit,
above the 131 peak that the PR checks would need. Without the JobId label of the
1ES runners, the Windows test workflow no longer needs its job_name input.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: use the larger runner's Electron cache path in the cache detector

The Windows cache warming job now runs on vscode-large-runners-windows-8-core,
whose user profile is runneradmin, so setup-electron caches Electron under
C:\Users\runneradmin\AppData\Local\electron\Cache. The cache path is part
of the cache version, and the detector still used the 1ES cloudtest path: it
would skip warming while only the old cache existed, and warm on every push
once that expired. A new test checks the detector's Electron cache versions
against the cache paths on the runners of the jobs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: keep the Windows test workspace on a Dev Drive

The larger runners have no temporary disk, so the workspace is on the OS disk,
where extracting the node_modules cache (219k files) took 100-160s instead of
the 60s on the 1ES runners' temporary disk; restoring the cache went from 1.3
to 2.2-4.8 min per job. In a benchmark on the larger runner, decompressing the
archive took only 6s, and extracting it into a Dev Drive in a VHDX on the same
OS disk took 43-45s.

The Windows test jobs now mount a Dev Drive at the parent of the workspace
before checkout. The workspace keeps its path, and falls back to the OS disk
with a warning if the Dev Drive cannot be set up. The smoke test shard with the
WSL suite keeps the OS disk, because WSL cannot open folders on a volume that
is mounted in a folder of drive C:.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: shard the Windows Agent Host E2E tests on the larger runners

On one 8-core larger runner, the six Agent Host E2E suites took 26-33 min,
with the workspace on the OS disk or on a Dev Drive, instead of 10-13 min on
the 1ES runners; every suite slowed down by a similar factor. In two shards of
three suites each, they took about 12 min per shard.

The Agent Host E2E runner gets a --shard <index>/<total> option, which runs
every <total>th suite and is also passed on to the Linux storage passes, and
the Windows Agent Host E2E job runs in two shards.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* smoke: don't use the host's Docker daemon to clean up the WSL Dev Container

The WSL Dev Container suite runs its container on the Docker daemon in WSL,
whose fixture removes it, and it doesn't check for a Docker daemon on the
Windows host. Its cleanup still ran `docker ps` on the host, which failed the
suite when the host had no running Docker engine, as happened on the
vscode-large-runners-windows-8-core runners. It now only removes the
.devcontainer folder.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-26 10:29:41 -04:00
..
2025-06-08 22:50:40 -07:00
2026-03-10 15:48:52 -07:00
2025-06-08 22:50:40 -07:00
2025-12-29 03:39:30 -08:00