Skip to content

Add Playwright chromium system dependencies#6

Merged
krlvi merged 1 commit intogitbutlerapp:masterfrom
mtsgrd:playwright-chromium-deps
Apr 16, 2026
Merged

Add Playwright chromium system dependencies#6
krlvi merged 1 commit intogitbutlerapp:masterfrom
mtsgrd:playwright-chromium-deps

Conversation

@mtsgrd
Copy link
Copy Markdown
Contributor

@mtsgrd mtsgrd commented Apr 16, 2026

Summary

  • Add Playwright chromium apt deps (libnspr4, libnss3, libasound2, and the rest of the Ubuntu 22.04 chromium list) to the base image.

Why

The gitbutler E2E Tests Playwright workflow runs pnpm exec playwright install --with-deps on cache miss. On top of this base image that step has been observed to take 40+ minutes (see e.g. gitbutlerapp/gitbutler#13336, job 71622403832). libnss3 alone is what the workflow already apt-get installs in its cache-hit fallback step, so we know it's missing today.

With these packages baked in, the follow-up change in gitbutlerapp/gitbutler can drop --with-deps (just downloads browser binaries, ~1–2 min) and the libnss3 fallback step entirely.

Most listed packages are already pulled in transitively by libgtk-3-dev / libwebkit2gtk-*-dev; listing them explicitly guards against future Playwright bumps changing the set.

Test plan

  • PR CI builds the image successfully.
  • After merge, follow-up gitbutler PR pins to the new digest and drops --with-deps + libnss3 fallback.

🤖 Generated with Claude Code

@mtsgrd mtsgrd force-pushed the playwright-chromium-deps branch from 246a13b to e9cbda4 Compare April 16, 2026 16:25
Lets `playwright install` run without `--with-deps` in the gitbutler e2e
workflow, which on a cache miss can take 40+ minutes on this image.
@mtsgrd mtsgrd force-pushed the playwright-chromium-deps branch from e9cbda4 to 872eb46 Compare April 16, 2026 16:42
@krlvi krlvi merged commit 53f9d52 into gitbutlerapp:master Apr 16, 2026
2 checks passed
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 16, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. A plain `playwright
install` only downloads the browser binary (~1-2 min), which the
existing ~/.cache/ms-playwright cache already handles.
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 16, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. A plain `playwright
install` only downloads the browser binary (~1-2 min), which the
existing ~/.cache/ms-playwright cache already handles.
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 17, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. Explicitly requesting
only chromium and webkit avoids downloading Firefox, which the e2e suite
doesn't use.
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 17, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. Explicitly requesting
only chromium and webkit avoids downloading Firefox, which the e2e suite
doesn't use. An `apt-get update` is needed before the install to avoid
stale package index 404s for webkit's system dependencies.
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 17, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. Explicitly requesting
only chromium and webkit avoids downloading Firefox, which the e2e suite
doesn't use. An `apt-get update` is needed before the install to avoid
stale package index 404s for webkit's system dependencies.
mtsgrd added a commit to gitbutlerapp/gitbutler that referenced this pull request Apr 17, 2026
Observed in #13336 (job 71622403832): `pnpm exec playwright install
--with-deps` took ~43 minutes on a cache miss, dominating the workflow's
wall time. The cache-hit fallback step right after it only installs
`libnss3`, which pointed at the system-deps portion of `--with-deps` as
the slow path rather than the browser binary download itself.

Playwright's chromium apt deps are now baked into the ci-base-image
(gitbutlerapp/ci-base-image#6), so this PR also bumps the pinned digest
and drops `--with-deps` plus the libnss3 fallback. Explicitly requesting
only chromium and webkit avoids downloading Firefox, which the e2e suite
doesn't use. An `apt-get update` is needed before the install to avoid
stale package index 404s for webkit's system dependencies.
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.

2 participants