Skip to content

ci(e2e): Run E2E tests without restoring the monorepo's node_modules - #25403

Open
mydea wants to merge 3 commits into
test/e2e-test-utils-tarballfrom
ci/e2e-without-root-node-modules
Open

mydea wants to merge 3 commits into
test/e2e-test-utils-tarballfrom
ci/e2e-without-root-node-modules

Conversation

@mydea

@mydea mydea commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

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 tsx scripts and to resolve @sentry-internal/test-utils. Since #25402 installs test-utils from a tarball, E2E jobs now only download tarballs.

The E2E scripts are now plain .mjs files without dependencies. They run under each app's pinned Node (down to 20.19), which rules out Node's type stripping. With run.ts converted too, the package no longer needs tsx, dotenv, glob, esbuild or a tsconfig (lint:ts never ran in CI).

Since #25380 the Playwright install reads its version from the app's package.json, so it doesn't need the root node_modules either. Since #25334, install-pnpm takes pnpm from the root node_modules too, so the E2E jobs install the root devDependencies version with pnpm/action-setup instead. Other workflows and local runs keep getting pnpm through yarn.lock. aws-serverless still downloads the build output, since its Lambda stack installs the built package directories.

Stacked on #25402. Replaces #25371, which GitHub closed as merged by accident during a restack. Its review history is still there.

🤖 Generated with Claude Code

@mydea
mydea added this pull request to stack #25405 October 15, 2026 12:55
@mydea
mydea force-pushed the ci/e2e-without-root-node-modules branch from 64925fb to f0bf393 Compare October 15, 2026 14:28
@mydea
mydea force-pushed the ci/e2e-without-root-node-modules branch from f0bf393 to 0113a54 Compare October 16, 2026 07:35
mydea and others added 2 commits October 16, 2026 10:51
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
mydea force-pushed the ci/e2e-without-root-node-modules branch from 0113a54 to c3e497e Compare October 16, 2026 08:52
… jobs

Only the E2E jobs drop the root node_modules, so only they need another way to
get pnpm. Canary, Lighthouse and local runs keep getting it through yarn.lock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea marked this pull request as ready for review October 16, 2026 11:18
@mydea
mydea requested review from JPeer264 and msonnb October 16, 2026 11:58

This branch has not been deployed

No deployments
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.

3 participants