Skip to content

test(e2e): Install test-utils from a tarball - #25402

Merged
mydea merged 3 commits into
chore/bump-playwright-1.64from
test/e2e-test-utils-tarball
Oct 19, 2026
Merged

mydea merged 3 commits into
chore/bump-playwright-1.64from
test/e2e-test-utils-tarball

Conversation

@mydea

@mydea mydea commented Oct 15, 2026

Copy link
Copy Markdown
Member

Test apps depended on @sentry-internal/test-utils via link:../../../test-utils. Its imports (express, ws) therefore resolved from the monorepo's root node_modules, so E2E jobs needed that restored even though the apps install everything else themselves.

test-utils is now packed like the SDK packages, and its tarball gets its own artifact so it can't end up among the release tarballs. Apps depend on it directly with file:../../packed/sentry-internal-test-utils-packed.tgz, so pnpm installs its dependencies into each app. It is also pinned through the pnpm overrides like the SDK packages, which is redundant but harmless.

Locally, changes to test-utils now need yarn build:tarball, as for the SDK packages.

Stacked on #25382. Replaces #25396, which GitHub closed as merged by accident during a restack.

🤖 Generated with Claude Code

@mydea
mydea added this pull request to stack #25405 October 15, 2026 12:55
@mydea
mydea force-pushed the test/e2e-test-utils-tarball branch from 5f86924 to 9637862 Compare October 15, 2026 14:28
@mydea
mydea force-pushed the test/e2e-test-utils-tarball branch from 9637862 to f2dbfe9 Compare October 16, 2026 07:35
@mydea
mydea force-pushed the test/e2e-test-utils-tarball branch from f2dbfe9 to 05695c5 Compare October 16, 2026 08:52
@mydea
mydea marked this pull request as ready for review October 16, 2026 09:12
@mydea
mydea requested review from Lms24 and andreiborza October 16, 2026 09:12
@mydea
mydea requested a review from a team as a code owner October 19, 2026 08:01
@mydea
mydea requested review from logaretm and removed request for a team October 19, 2026 08:01
@mydea
mydea force-pushed the test/e2e-test-utils-tarball branch from 05695c5 to d7caecc Compare October 19, 2026 08:17
mydea and others added 3 commits October 19, 2026 11:04
Test apps linked `@sentry-internal/test-utils` from the workspace, so its
dependencies (`express`, `ws`) resolved from the monorepo's root
`node_modules`. It is now packed like the SDK packages, and the apps depend on
its tarball in `packed/` directly, so pnpm installs its dependencies into each
app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mydea
mydea force-pushed the test/e2e-test-utils-tarball branch from d7caecc to 4a369e5 Compare October 19, 2026 09:06
@mydea
mydea merged commit 6789382 into develop Oct 19, 2026
374 of 375 checks passed
@mydea
mydea deleted the test/e2e-test-utils-tarball branch October 19, 2026 09:24
mydea added a commit that referenced this pull request Oct 19, 2026
…25403)

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](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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