ci: the browser gets its libraries

`npm --prefix ui exec playwright install --with-deps chromium` downloaded the
browser and none of its shared libraries: npm's own parser consumed --with-deps
before playwright saw it, so the install ran as a plain `install chromium`. The
first run of this job that ever got past the typecheck therefore opened nothing —
7 of 12 tests died at browser launch on libnspr4.so, the whole signed-in console
suite among them, and the failure looked like a broken product rather than a
missing package.

Measured, not reasoned about: `npm exec node -p … --with-deps` reaches node
without the flag; `npm exec -- node -p … --with-deps` reaches it with one.

The console declares the command and CI runs it, which is what every other node
step in these workflows already does and the last `exec` here was the last place
a flag could be eaten on the way. Same shape as the tsc call one step above.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-08-01 14:58:25 -07:00
co-authored by Hanzo Dev
parent d223e896f9
commit e835a29007
2 changed files with 12 additions and 2 deletions
+10 -1
View File
@@ -149,6 +149,15 @@ jobs:
# style-src refuses, so whether the arrangement in ui/src/gui.ts holds is
# a question only a browser can answer — and the signed-in tree is where
# the six screens that do the styling live.
#
# The browser comes from the console's own script. It was `npm --prefix ui
# exec playwright install --with-deps chromium`, and npm's parser ate
# `--with-deps` before playwright saw it: the browser downloaded, its
# shared libraries did not, and every test that opened a page died on
# libnspr4.so — 7 of 12, the whole signed-in suite, on the first run this
# job ever reached. Same shape as the tsc call above. `npm run` hands a
# script's arguments to the script, so the package states the command once
# and CI has no second copy to get wrong.
run: |
npm --prefix ui exec playwright install --with-deps chromium
npm --prefix ui run e2e:browser
npm --prefix ui run e2e
+2 -1
View File
@@ -7,7 +7,8 @@
"build": "tsc -b && vite build",
"typecheck": "tsc -b",
"preview": "vite preview",
"e2e": "playwright test"
"e2e": "playwright test",
"e2e:browser": "playwright install --with-deps chromium"
},
"dependencies": {
"@hanzo/gui": "8.0.0",