Repository navigation
ci: Read the Playwright version from package.json in install-playwright - #25380
Merged
mydea merged 1 commit intoOct 15, 2026
Merged
Conversation
This was referenced Oct 15, 2026
mydea
added this pull request to stack #25385
October 15, 2026 07:44
The action now requires a `cwd` and reads the `@playwright/test` version from its package.json instead of resolving it from node_modules. This makes it independent of installed dependencies, so E2E jobs install the app's own version up front and no longer need a second install after the app build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mydea
force-pushed
the
ci/install-playwright-from-package-json
branch
from
October 15, 2026 11:35
280993e to
58e768f
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
marked this pull request as ready for review
October 15, 2026 11:53
mydea
removed this pull request from stack #25392
October 15, 2026 11:58
mydea
added this pull request to stack #25397
October 15, 2026 11:58
mydea
removed this pull request from stack #25397
October 15, 2026 12:51
mydea
added this pull request to stack #25401
October 15, 2026 12:52
mydea
removed this pull request from stack #25401
October 15, 2026 12:55
mydea
added this pull request to stack #25405
October 15, 2026 12:55
s1gr1d
approved these changes
Oct 15, 2026
mydea
added a commit
that referenced
this pull request
Oct 15, 2026
Ten E2E apps still declared `@playwright/test@~1.56.0`, while the root and all other apps use `~1.63.0`: - `bun-express` - `cloudflare-workers-send-to-sentry` - `node-eve` - `node-fastify-6` - `node-flue` - `node-mastra` - `node-prisma-8` - `remix-v3` - `tanstackstart-react-static` - `vue-3-static` No app is ahead of the root, and nothing in these apps references 1.56 specifically. Aligning them gets every job onto one cached set of browsers, and prepares for pinning exact versions and checking for drift in follow-up PRs. Stacked on #25380. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
mydea
added a commit
that referenced
this pull request
Oct 19, 2026
Bumps `@playwright/test` from `~1.63.0` to 1.64.1 in the root workspace packages, the `@sentry-internal/test-utils` peer range and every E2E app. The version is now pinned exactly, without `~`. `install-playwright` (#25380) installs browsers for the version declared in `package.json`. With a range, an app could resolve a newer patch release than the browsers that were installed, and Playwright patch releases sometimes ship a new browser build. Of the [1.64 breaking changes](https://github.com/microsoft/playwright/releases/tag/v1.64.0), the most likely to matter here is that device descriptors now forward `screen`. Replay snapshot tests use those descriptors and still pass locally. Stacked on #25381. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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>
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.
The
install-playwrightaction resolved the version from the installed@playwright/testinnode_modules. In E2E jobs that is only available after the app's build, so the jobs installed the root's version in the background and then ran the action a second time, in case the app used a different one.The action now requires a
cwdand reads@playwright/testfrom<cwd>/package.json. That works before any dependencies are installed, and each caller always gets the version it actually uses. E2E jobs point it at the checked-out app and install once. Directories without@playwright/testinstall nothing.The version is the declared range with its
~/^prefix stripped. A follow-up PR pins exact versions so this is always the version that gets installed.🤖 Generated with Claude Code