Skip to content

ci(e2e): Stop pnpm run from installing the workspace in E2E jobs - #25514

Merged
mydea merged 3 commits into
developfrom
ci/e2e-skip-pnpm-auto-install
Oct 19, 2026
Merged

mydea merged 3 commits into
developfrom
ci/e2e-skip-pnpm-auto-install

Conversation

@mydea

@mydea mydea commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Since #25403, E2E jobs no longer restore the root node_modules. pnpm then installs all 63 workspace projects before the first pnpm run test:prepare, because verify-deps-before-run finds the dependencies missing. That's about 26s per E2E job, which cancels out most of what #25403 saved. It also made the background Playwright install flaky: its npx ran from the repo root and could find the hoisted node_modules/playwright before pnpm had linked its binary (playwright: not found). The scripts run with pnpm run here are plain node scripts, so disabling the check is enough. It's set per job, so local runs keep it.

Without the long install, the foreground steps start in quick succession, which exposes a runner bug. The runner sets up the steps of a background composite action from the job's shared github context (CompositeActionHandler.cs → GitHubContext.ShallowCopy()). If a foreground step starts at that moment, this fails with Collection was modified; enumeration operation may not execute. The background install now starts right before the app build, so nothing else starts while it sets up. The steps it no longer overlaps with take well under a second.

🤖 Generated with Claude Code

Since #25403, E2E jobs no longer restore the root node_modules. pnpm then installs the whole workspace before
the first `pnpm run` in dev-packages/e2e-tests, which took about 26s per job. Next to the background Playwright
install, its npx sometimes picked up the half-installed root playwright and failed with "playwright: not found".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea marked this pull request as ready for review October 19, 2026 10:55
@mydea
mydea requested review from JPeer264 and Lms24 October 19, 2026 10:55
A background composite action sets up its steps from the job's shared github context. When a foreground step
starts at that moment, the runner fails with "Collection was modified; enumeration operation may not execute".
With the workspace install gone, the foreground steps start quickly enough to hit this in a few jobs per run.

The E2E jobs only need chromium, so download it directly instead of restoring the cache of all browsers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea marked this pull request as draft October 19, 2026 14:16
…e the build

Instead of replacing the action, start it where the next foreground step runs for a while. Without the workspace
install, the steps before the build take well under a second, so this barely shortens the overlap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea marked this pull request as ready for review October 19, 2026 14:58
@mydea
mydea merged commit 40456d5 into develop Oct 19, 2026
376 of 377 checks passed
@mydea
mydea deleted the ci/e2e-skip-pnpm-auto-install branch October 19, 2026 14:59
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.

2 participants