Repository navigation
ci(e2e): Run E2E tests without restoring the monorepo's node_modules - #25371
Merged
mydea merged 2 commits intoOct 15, 2026
Merged
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d16ed93. Configure here.
mydea
force-pushed
the
ci/e2e-without-root-node-modules
branch
from
October 15, 2026 07:43
d16ed93 to
f3d3a76
Compare
mydea
changed the base branch from
develop
to
ci/playwright-background-installs
October 15, 2026 07:43
mydea
added this pull request to stack #25385
October 15, 2026 07:44
mydea
force-pushed
the
ci/e2e-without-root-node-modules
branch
from
October 15, 2026 11:36
f3d3a76 to
7244f57
Compare
mydea
removed this pull request from stack #25385
October 15, 2026 11:37
mydea
added this pull request to stack #25392
October 15, 2026 11:37
mydea
force-pushed
the
ci/e2e-without-root-node-modules
branch
from
October 15, 2026 11:58
7244f57 to
c7e9bed
Compare
mydea
removed this pull request from stack #25392
October 15, 2026 11:58
mydea
changed the base branch from
ci/playwright-background-installs
to
test/e2e-test-utils-tarball
October 15, 2026 11:58
mydea
added this pull request to stack #25397
October 15, 2026 11:58
mydea
force-pushed
the
ci/e2e-without-root-node-modules
branch
from
October 15, 2026 12:03
c7e9bed to
091053c
Compare
E2E jobs restored the ~860 MB root dependency cache and the full build output only to run a few tsx scripts and to resolve the linked test-utils package. The scripts are now plain .mjs files without dependencies, and test-utils is installed from a tarball like the SDK packages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With all scripts as plain .mjs files, the local runner no longer needs tsx, dotenv or glob. esbuild was unused. Type checking of this package was never run in CI, so it no longer has a tsconfig; the JSDoc types are kept for editors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mydea
force-pushed
the
ci/e2e-without-root-node-modules
branch
from
October 15, 2026 12:51
091053c to
64925fb
Compare
Base automatically changed from
test/e2e-test-utils-tarball
to
ci/playwright-background-installs
October 15, 2026 12:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Each E2E job restored the full ~860 MB root dependency cache and the build output (about 33s per job, ~2.5 runner-hours per CI run) only to run a few
tsxscripts and to resolve the linked@sentry-internal/test-utils. E2E jobs now only download tarballs.The blocker was test-utils: apps depend on it via
link:, so its imports (express,ws) resolved from the monorepo's rootnode_modules. It is now packed like the SDK packages and pinned through the pnpm overrides the E2E setup already writes, so apppackage.jsonfiles stay unchanged and pnpm installs its dependencies into each app. It goes into its own artifact so it can't end up among the release tarballs.The E2E scripts are now plain
.mjsfiles without dependencies. They run under each app's pinned Node (down to 20.19), which rules out Node's type stripping. Withrun.tsconverted too, the package no longer needstsx,dotenv,glob,esbuildor a tsconfig (lint:tsnever ran in CI).Since #25380 the Playwright install reads its version from the app's
package.json, so it doesn't need the rootnode_moduleseither.aws-serverlessstill downloads the build output, since its Lambda stack installs the built package directories.This also fixes the on-failure dump normalization step, which has never matched anything in CI: it searched the repo's
test-applications/while apps run in the runner's temp directory.Stacked on #25384.
🤖 Generated with Claude Code