mirror of
https://github.com/coder/coder.git
synced 2026-10-16 14:48:56 +08:00
fix: update Playwright for Ubuntu 26.04 support (#30228)
## Problem Fresh Ubuntu 26.04 workspaces emitted Playwright unsupported-OS warnings even after upgrading the package. The repository pinned Playwright 1.55.1, and the dogfood image baked in `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64`, which prevented native OS detection. ## Fix Update `@playwright/test` and its lockfile resolutions to 1.63.0, which supports Ubuntu 26.04, and remove the obsolete platform override from `dogfood/coder/ubuntu-26.04/Dockerfile.base`. Companion https://github.com/coder/dogfood/pull/638 upgrades the separate Playwright MCP installer and clears the inherited override at runtime for already-published images. ## Validation - Fresh TEST workspace `startup-warnings-clean` reached ready and healthy. Its 15 captured startup log files (774 lines) contained zero `node-gyp: not found`, optional crypto-binding failure, `EBADENGINE`, Playwright missing-dependency (`without first`), or unsupported-OS (`BEWARE`) warnings. The logs recorded one native-binding success and one dashboard start. The preceding fresh-startup test reproduced five Playwright `BEWARE` warnings. - Site Chromium `153.0.8010.12` launch/navigation passed. The actual generated `~/.claude.json` MCP configuration passed launch, initialization, navigation, and close; the Codex TOML command matched. Agent-browser smoke testing also passed. - This used repository commit `d137476055` and the published Ubuntu 26.04 image with the template clearing its inherited platform override. The image-source removal was not present in the tested image; no rebuilt-image startup test was performed. - Earlier frozen-lockfile installation, frontend formatting, checks, and lint passed. Fresh Chromium downloads, headless-shell and full-Chromium launch/click/assertion smoke tests, and all 15 Button Storybook tests passed locally. - Current CI passed the Ubuntu 26.04 image build, lint, formatting, generation, JavaScript tests, application E2E tests, Flake Check, and the required-check aggregator. The newly built image has not been startup-tested. [Storybook/Pixel](https://github.com/coder/coder/actions/runs/36856302955/job/110349479622) again failed with HTTP 500 (`could not record snapshot`), aborting after 11 failed snapshot reports. <details> <summary>Implementation decisions and verification limits</summary> Runtime verification used inactive template version `startup-warnings-native-os` (`7a0ea80e-60ef-4fb0-abc9-fbb8ec32d9a3`). The active shared version `cf3c11f` remained unchanged. Use native Ubuntu 26.04 support rather than filtering warnings or forcing fallback builds. Remove the override at its image source and clear it in the companion template so existing images benefit without waiting for a rebuild. Keep dependency changes limited to Playwright and its lockfile resolutions. Firefox, WebKit, and local Nix compatibility remain unverified. An earlier dependency-install dry run reported missing system packages despite successful Chromium smoke tests. Local Storybook retained its existing Vitest package-version mismatch warning and teardown timeout. The Mux AI SDK/Ollama peer-dependency warning ([upstream issue](https://github.com/coder/xum/issues/5372)) and generic agent-browser Linux advisory remain. Provisioning also reports unrelated `coder_agent.dir` deprecation and Desktop file-sync warnings. This does not claim a warning-free workspace. </details> > 🤖 This PR was created with the help of Coder Agents, and needs a human review. 🧑💻
This commit is contained in:
@@ -274,6 +274,3 @@ ENV GOPRIVATE="coder.com,cdr.dev,go.coder.com,github.com/cdr,github.com/coder"
|
||||
|
||||
# Increase memory allocation to NodeJS
|
||||
ENV NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
# This should be removed when we can upgrade to Playwright 1.61.
|
||||
ENV PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64
|
||||
|
||||
+1
-1
@@ -119,7 +119,7 @@
|
||||
"@biomejs/biome": "2.5.10",
|
||||
"@coder/pixel-storybook": "0.3.0",
|
||||
"@octokit/types": "12.6.0",
|
||||
"@playwright/test": "1.55.1",
|
||||
"@playwright/test": "1.63.0",
|
||||
"@rolldown/plugin-babel": "0.2.3",
|
||||
"@shadcn/lint": "0.2.0",
|
||||
"@storybook/addon-a11y": "10.3.3",
|
||||
|
||||
Generated
+24
-34
@@ -244,13 +244,13 @@ importers:
|
||||
version: 2.5.10
|
||||
'@coder/pixel-storybook':
|
||||
specifier: 0.3.0
|
||||
version: 0.3.0(playwright-core@1.55.1)(storybook@10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8))
|
||||
version: 0.3.0(playwright-core@1.63.0)(storybook@10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8))
|
||||
'@octokit/types':
|
||||
specifier: 12.6.0
|
||||
version: 12.6.0
|
||||
'@playwright/test':
|
||||
specifier: 1.55.1
|
||||
version: 1.55.1
|
||||
specifier: 1.63.0
|
||||
version: 1.63.0
|
||||
'@rolldown/plugin-babel':
|
||||
specifier: 0.2.3
|
||||
version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.4)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
@@ -346,7 +346,7 @@ importers:
|
||||
version: 6.1.0(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.4)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
'@vitest/browser-playwright':
|
||||
specifier: 4.1.10
|
||||
version: 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
version: 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.63.0)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
babel-plugin-react-compiler:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
@@ -1792,9 +1792,9 @@ packages:
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@playwright/test@1.55.1':
|
||||
resolution: {integrity: sha512-IVAh/nOJaw6W9g+RJVlIQJ6gSiER+ae6mKQ5CX1bERzQgbC1VSeBlwdvczT7pxb0GWiyrxH4TGKbMfDb4Sq/ig==, tarball: https://registry.npmjs.org/@playwright/test/-/test-1.55.1.tgz}
|
||||
engines: {node: '>=18'}
|
||||
'@playwright/test@1.63.0':
|
||||
resolution: {integrity: sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==, tarball: https://registry.npmjs.org/@playwright/test/-/test-1.63.0.tgz}
|
||||
engines: {node: '>=20'}
|
||||
hasBin: true
|
||||
|
||||
'@polka/url@1.0.0-next.29':
|
||||
@@ -4459,11 +4459,6 @@ packages:
|
||||
resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz}
|
||||
engines: {node: '>=14.14'}
|
||||
|
||||
fsevents@2.3.2:
|
||||
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz}
|
||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
||||
os: [darwin]
|
||||
|
||||
fsevents@2.3.3:
|
||||
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz}
|
||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
||||
@@ -5593,14 +5588,14 @@ packages:
|
||||
picoquery@2.5.0:
|
||||
resolution: {integrity: sha512-j1kgOFxtaCyoFCkpoYG2Oj3OdGakadO7HZ7o5CqyRazlmBekKhbDoUnNnXASE07xSY4nDImWZkrZv7toSxMi/g==, tarball: https://registry.npmjs.org/picoquery/-/picoquery-2.5.0.tgz}
|
||||
|
||||
playwright-core@1.55.1:
|
||||
resolution: {integrity: sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==, tarball: https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.1.tgz}
|
||||
engines: {node: '>=18'}
|
||||
playwright-core@1.63.0:
|
||||
resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==, tarball: https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz}
|
||||
engines: {node: '>=20'}
|
||||
hasBin: true
|
||||
|
||||
playwright@1.55.1:
|
||||
resolution: {integrity: sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==, tarball: https://registry.npmjs.org/playwright/-/playwright-1.55.1.tgz}
|
||||
engines: {node: '>=18'}
|
||||
playwright@1.63.0:
|
||||
resolution: {integrity: sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==, tarball: https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz}
|
||||
engines: {node: '>=20'}
|
||||
hasBin: true
|
||||
|
||||
pngjs@7.0.0:
|
||||
@@ -7053,11 +7048,11 @@ snapshots:
|
||||
|
||||
'@chevrotain/types@11.1.2': {}
|
||||
|
||||
'@coder/pixel-storybook@0.3.0(playwright-core@1.55.1)(storybook@10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8))':
|
||||
'@coder/pixel-storybook@0.3.0(playwright-core@1.63.0)(storybook@10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8))':
|
||||
dependencies:
|
||||
get-port-please: 3.1.2
|
||||
jsonc-parser: 3.3.1
|
||||
playwright-core: 1.55.1
|
||||
playwright-core: 1.63.0
|
||||
serve-handler: 6.1.7
|
||||
storybook: 10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8)
|
||||
zod: 3.23.8
|
||||
@@ -7994,9 +7989,9 @@ snapshots:
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
optional: true
|
||||
|
||||
'@playwright/test@1.55.1':
|
||||
'@playwright/test@1.63.0':
|
||||
dependencies:
|
||||
playwright: 1.55.1
|
||||
playwright: 1.63.0
|
||||
|
||||
'@polka/url@1.0.0-next.29': {}
|
||||
|
||||
@@ -9084,7 +9079,7 @@ snapshots:
|
||||
storybook: 10.5.10(@types/react@19.2.18)(prettier@3.4.1)(react@19.2.8)
|
||||
optionalDependencies:
|
||||
'@vitest/browser': 4.1.10(msw@2.4.8(typescript@6.0.2))(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
'@vitest/browser-playwright': 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
'@vitest/browser-playwright': 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.63.0)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
'@vitest/runner': 4.1.11
|
||||
vitest: 4.1.11(@types/node@20.19.41)(@vitest/browser-playwright@4.1.10)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
transitivePeerDependencies:
|
||||
@@ -9672,11 +9667,11 @@ snapshots:
|
||||
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.4)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
babel-plugin-react-compiler: 1.0.0
|
||||
|
||||
'@vitest/browser-playwright@4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)':
|
||||
'@vitest/browser-playwright@4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.63.0)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)':
|
||||
dependencies:
|
||||
'@vitest/browser': 4.1.10(msw@2.4.8(typescript@6.0.2))(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
'@vitest/mocker': 4.1.10(msw@2.4.8(typescript@6.0.2))(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
playwright: 1.55.1
|
||||
playwright: 1.63.0
|
||||
tinyrainbow: 3.1.1
|
||||
vitest: 4.1.11(@types/node@20.19.41)(@vitest/browser-playwright@4.1.10)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))
|
||||
transitivePeerDependencies:
|
||||
@@ -10752,9 +10747,6 @@ snapshots:
|
||||
jsonfile: 6.2.1
|
||||
universalify: 2.0.1
|
||||
|
||||
fsevents@2.3.2:
|
||||
optional: true
|
||||
|
||||
fsevents@2.3.3:
|
||||
optional: true
|
||||
|
||||
@@ -12193,13 +12185,11 @@ snapshots:
|
||||
|
||||
picoquery@2.5.0: {}
|
||||
|
||||
playwright-core@1.55.1: {}
|
||||
playwright-core@1.63.0: {}
|
||||
|
||||
playwright@1.55.1:
|
||||
playwright@1.63.0:
|
||||
dependencies:
|
||||
playwright-core: 1.55.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
playwright-core: 1.63.0
|
||||
|
||||
pngjs@7.0.0: {}
|
||||
|
||||
@@ -13410,7 +13400,7 @@ snapshots:
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.41
|
||||
'@vitest/browser-playwright': 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
'@vitest/browser-playwright': 4.1.10(msw@2.4.8(typescript@6.0.2))(playwright@1.63.0)(vite@8.2.1(@types/node@20.19.41)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.8.3))(vitest@4.1.11)
|
||||
jsdom: 27.2.0
|
||||
transitivePeerDependencies:
|
||||
- msw
|
||||
|
||||
Reference in New Issue
Block a user