Repository navigation
Repair wp/6.4 branch Actions: Upgrade Playwright to fix Ubuntu 24.04 (Noble) browser-install failures - #140
Closed
desrosj wants to merge 1 commit into
Conversation
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 10, 2026 19:37
61f2869 to
d62789f
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 00:02
d62789f to
f732740
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 00:29
f732740 to
a1e2941
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 01:14
a1e2941 to
02a8075
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 02:19
02a8075 to
319ad23
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 02:29
319ad23 to
b0577d3
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 11, 2026 16:08
b0577d3 to
c540c1e
Compare
This was referenced Sep 11, 2026
desrosj
added a commit
that referenced
this pull request
Sep 12, 2026
`packages/env` still shelled out to a literal `docker-compose` binary (Docker Compose V1, standalone), which GitHub's current runner images no longer ship. Every `wp-env` command — including `wp-env start`, which every Puppeteer, Playwright, and PHP job on this branch depends on — failed immediately with `Error: spawn docker-compose ENOENT`. Docker Compose V2 ships as a `docker compose` subcommand rather than a separate binary, and the `docker-compose` npm package (which this package uses to drive it) only exposes a V2-compatible API via its `v2` export starting at `0.23.x`. This bumps the dependency to `^0.24.3` and switches every call site to `require( 'docker-compose' ).v2`, and updates `run.js`'s direct CLI invocation from the `docker-compose` binary to `docker compose`. This is the same fix WordPress#51339 ("wp-env: Migrate to Compose V2") applied to trunk in December 2023 (a0943f2), fixing WordPress#51249. This branch's own `fix-actions-6.4/fix-playwright-noble-install` (#140) already documented this exact failure as a known, separate, out-of-scope issue left for future work — this is that work. `docker-compose@0.24.3` pulls in `yaml@^2.2.2` as a new transitive dependency, and that package ships as ESM. Jest's default `transformIgnorePatterns` excludes `node_modules` from transformation, so any test that ends up requiring `packages/env` (directly or via `docker-compose`) fails with a syntax error when Jest hits `yaml`'s ESM `export`/`import` statements. `test/unit/jest.config.js` now allow-lists `docker-compose` and `yaml` so Jest transforms them like project source instead of skipping them.
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 13, 2026 02:57
c540c1e to
b7d36d2
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 14, 2026 01:38
b7d36d2 to
6ca8616
Compare
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 14, 2026 17:38
6ca8616 to
fe810c3
Compare
desrosj
changed the base branch from
fix-actions-6.4/disable-flaky-test-issue-reporting
to
wp/6.4
September 21, 2026 23:50
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 21, 2026 23:51
e901ee6 to
324f286
Compare
desrosj
changed the base branch from
wp/6.4
to
fix-actions-6.4/disable-flaky-test-issue-reporting
September 21, 2026 23:52
desrosj
changed the base branch from
fix-actions-6.4/disable-flaky-test-issue-reporting
to
wp/6.4
September 22, 2026 15:39
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 22, 2026 15:44
324f286 to
6210123
Compare
desrosj
changed the base branch from
wp/6.4
to
fix-actions-6.4/ignore-browserslist-old-data
September 22, 2026 15:44
desrosj
changed the base branch from
fix-actions-6.4/ignore-browserslist-old-data
to
wp/6.4
September 22, 2026 20:16
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 22, 2026 21:32
6210123 to
b935f21
Compare
desrosj
changed the base branch from
wp/6.4
to
fix-actions-6.4/ignore-browserslist-old-data
September 22, 2026 21:34
desrosj
changed the base branch from
fix-actions-6.4/ignore-browserslist-old-data
to
wp/6.4
September 23, 2026 01:30
desrosj
force-pushed
the
fix-actions-6.4/fix-playwright-noble-install
branch
from
September 23, 2026 01:36
b935f21 to
ab9e88c
Compare
desrosj
changed the base branch from
wp/6.4
to
fix-actions-6.4/ignore-browserslist-old-data
September 23, 2026 01:38
desrosj
changed the base branch from
fix-actions-6.4/ignore-browserslist-old-data
to
wp/6.4
September 24, 2026 04:45
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
This was referenced Sep 25, 2026
GitHub's `ubuntu-24.04` ("Noble") runners break `npx playwright install --with-deps` on Playwright versions before `1.45`, which don't recognize Noble in their OS-dependency lookup. `1.49.1` matches the version already used on `wp/6.5` and newer branches, and is compatible with this branch's Node.js 20.
`playwright-core` in `@wordpress/scripts` is bumped in lockstep, because `wp-scripts test-playwright` downloads browsers through it. Leaving it at `1.32.0` would download a second, unused set of `1.32.0` browser builds on every E2E run.
`wp-scripts test-playwright` now resolves `playwright-core`'s `cli.js` next to the package's main entry, instead of requiring `playwright-core/cli`. Newer `playwright-core` releases no longer export that subpath, so the old call fails with `ERR_PACKAGE_PATH_NOT_EXPORTED` before any test runs. Ported from `trunk`'s `c1733028115` ("Upgrade Playwright to 1.39.0", WordPress#54051).
`skipLibCheck` is added to `tsconfig.base.json` and to the ad-hoc `tsc` call in `check-build-type-declaration-files.js`, which does not read a tsconfig file. Playwright `1.49.1`'s type declarations use `Symbol.asyncDispose` (TypeScript's `esnext.disposable` lib, added in TypeScript 5.2), and this branch is pinned to TypeScript `5.1.6`. Without both, `npm run build` fails in `build:package-types`. The setting only skips checking of declaration files, such as those under `node_modules`; this codebase's own sources are still type checked.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Moved to WordPress#83685. The branch is left in place. |
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.
What?
Upgrades
@playwright/testfrom1.32.0to1.49.1, with the matchingplaywright-coredependency and@playwright/testpeer dependency inpackages/scripts/package.json, and regeneratespackage-lock.json. Also includes the three follow-up changes that version needs on this branch:wp-scripts test-playwrightresolvesplaywright-core'scli.jsnext to the package's main entry, instead of requiringplaywright-core/cli. Ported fromtrunk'sc1733028115(Upgrade Playwright to 1.39.0 WordPress/gutenberg#54051).skipLibCheckis added totsconfig.base.json.--skipLibCheckis added to the ad-hoctsccall inbin/packages/check-build-type-declaration-files.js.end2end-test.ymlis unchanged:npx playwright install chromium firefox webkit --with-depsruns as before, with all three browsers.Why?
The
ubuntu-24.04("Noble") runner breaksnpx playwright install --with-depson Playwright versions before1.45, which don't recognize Noble in their OS-dependency lookup. This PR previously worked around that on1.32.0by installing browser binaries without--with-depsand dropping WebKit, because the branch was on Node.js 16. The stack now upgrades the branch to Node.js 20, so the version can be bumped instead.1.49.1matcheswp/6.5(WordPress#82997) andwp/6.6(WordPress#82926).The workaround also left Firefox untested: on its last run, all 120 Firefox tests failed with
browserContext.newPage: Page closed, starting with the first one. That's why #382 excluded Firefox. #382 is no longer part of this stack.Each follow-up change was confirmed necessary on this branch:
playwright-corein@wordpress/scripts: CI runs E2E tests throughwp-scripts test-playwright, which installs browsers withplaywright-core. Without the bump it resolves to1.32.0, and every shard downloads a second, unused set of1.32.0browsers (Chromium 112, Firefox 111, WebKit 16.4).cli.jspath: newerplaywright-corereleases no longer export./cli. Without this change, every Playwright shard fails withERR_PACKAGE_PATH_NOT_EXPORTEDbefore running a test (confirmed in CI on Validatewp/6.4Actions: Upgrade Playwright to1.49.1instead of working around it #532).skipLibCheckintsconfig.base.json: Playwright1.49.1's type declarations useSymbol.asyncDispose, which needs TypeScript 5.2; this branch uses5.1.6. Without it,tsc --buildinnpm run buildfails with 44 errors innode_modules/playwright-core/types/types.d.ts.--skipLibCheckincheck-build-type-declaration-files.js: this script runstscon single declaration files without reading a tsconfig. With only the tsconfig change, it still fails one2e-test-utils-playwright's types.skipLibCheckonly skips checking declaration files, such as those undernode_modules; this codebase's own sources are still type checked.trunkhas the same setting.Testing
npm run build:packages,npm run lint:lockfile,npm run lint:tsconfigandnpm run test:e2e:playwright -- --list(911 tests across all three projects) all pass.wp/6.4Actions: Upgrade Playwright to1.49.1instead of working around it #532:Install Playwright dependenciessucceeded on all 4 shards.--with-depsinstalled the Noble packages (libasound2t64,libsoup-3.0-0,libvpx9), all three browsers downloaded, andwp-env startsucceeded. The tests themselves didn't run there because of thecli.jspath issue, which this PR now fixes.Test failures caused by the jump from
1.32to1.49are handled in the PRs above this one in the stack.Use of AI Tools
This PR was created by Claude Code under my supervision. All code should be treated as AI-produced and not yet reviewed by a human until this PR is marked Ready for Review.
🤖 Generated with Claude Code