Skip to content

feat(actions-runner): bake in headless Chromium libs for Playwright suites - #4

Merged
swibrow merged 1 commit into
mainfrom
feat/actions-runner-playwright-deps
Jul 29, 2026
Merged

feat(actions-runner): bake in headless Chromium libs for Playwright suites#4
swibrow merged 1 commit into
mainfrom
feat/actions-runner-playwright-deps

Conversation

@swibrow

@swibrow swibrow commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds headless Chromium's runtime libraries and font fallbacks to the actions-runner image so Playwright suites work on ARC: playwright install --with-deps escalates to root for these packages and the image is rootless (su: Authentication failure — this has failed every garrison main run since the wartable Playwright job landed). With the libs baked in, workflows run a plain playwright install chromium as the runner user.
  • Package list is Playwright 1.62.0's nativeDeps for ubuntu24.04 (same set on arm64), minus xvfb and the xfonts-* server fonts that only headed X11 mode needs. Fonts (fonts-noto-color-emoji, CJK, liberation) stay — screenshot suites need them to render emoji-heavy UI instead of tofu boxes.
  • Bumps the image revision to 2.336.0-2 and extends the smoke test to assert a sample of the new packages.

Test plan

  • CI image build passes on both arches and the metadata smoke test asserts the new packages
  • After release + rollout, garrison's wartable-ui job passes on the garrison runner with plain bunx playwright install chromium

…uites

Playwright workflows on ARC runners fail at `playwright install
--with-deps`: it escalates to root to apt-install Chromium's system
libraries, and this image is rootless with no sudo (su: Authentication
failure). Baking the libraries in lets workflows run a plain
`playwright install chromium` as the runner user.

The package list is Playwright 1.62.0's nativeDeps for ubuntu24.04
(identical on arm64), minus xvfb and the xfonts-* server fonts that
only headed X11 mode needs. The font packages stay so screenshot
suites render emoji and CJK text instead of tofu boxes.

Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>
@swibrow
swibrow merged commit 40ec7a4 into main Jul 29, 2026
5 checks passed
swibrow added a commit to swibrow/home-ops that referenced this pull request Jul 30, 2026
… pool (#1896)

* chore(arc): garrison runner image 2.336.0-2 with Playwright chromium libs

Same upstream runner; the revision bakes in headless Chromium's system
libraries (cloudsnacks/containers#4) so garrison's wartable-ui job can
run `playwright install chromium` without root. Manual bump: renovate
deliberately doesn't track the -N revision suffix on this image.

Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>

* chore(arc): scale the garrison runners and take the mise toolchain image

garrison's ci fans out further than the shared default of two runners can
absorb: a main push wants the five gates plus a keep and a runner image
build at once. On run 30489535961 that queued 56 aggregate minutes
against 24 minutes of work, with build (keep) waiting 22m54 for a slot.
maxRunners 6 gives the split gates somewhere to go, and minRunners 1
keeps one warm so the ~10 minute ARC cold start stops landing on the
front of every run — it was 12m08 before gates even started.

The image bump to 2.336.0-3 picks up the mise-managed CLI toolchain
(gh, yq, hadolint, shellcheck), which is what lets garrison's
deploy-pitower job drop the yq and gh it was curling into RUNNER_TEMP.
Land that image first: the tag has to exist before the scale set rolls.

Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>

---------

Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>
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.

1 participant