From 441b9297cee031407cb002b557f61952dd780b8f Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Thu, 28 May 2026 10:03:56 +0200 Subject: [PATCH] fix(ci): give gitlab perf job a discoverable chromium (ADR-0028) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The perf job ran on the Playwright image, which bundles Chromium at a non-standard path that Lighthouse's chrome-launcher cannot find — the job failed at the healthcheck with 'Chrome installation not found'. Switch perf to node:24-bookworm and apt-install Debian's chromium (/usr/bin/chromium), pointing CHROME_PATH at it. Preferred over wiring CHROME_PATH to Playwright's bundled Chromium because the latter couples the job to an exact @playwright/test-version vs image-tag match that a Renovate bump would silently break. The future ADR-0016 axe-core e2e job will use the Playwright image; Lighthouse and Playwright want different things, so they get different images rather than one that serves both poorly. --- .gitlab-ci.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f193c2c..9226481 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -105,11 +105,21 @@ commits: perf: extends: .node-job stage: perf - # Lighthouse CI drives a real Chrome instance. Playwright's image is - # the canonical "Node + browsers" CI image and is already on our - # roadmap for the ADR-0016 axe-core e2e — single image covers both - # uses once the a11y suite lands. - image: mcr.microsoft.com/playwright:v1.55.0-jammy + # Lighthouse CI drives a real Chrome via chrome-launcher, which + # probes the PATH / CHROME_PATH for a standard Chrome/Chromium + # binary. The Playwright image bundles Chromium under /ms-playwright + # with a non-standard name chrome-launcher cannot discover, so we + # stay on the base Node image and apt-install Debian's `chromium` + # (lands at /usr/bin/chromium). The future ADR-0016 axe-core e2e job + # — which drives Playwright directly — will use the Playwright image + # instead: the two tools want different things, so they get + # different images rather than one image that serves both poorly. + image: node:24-bookworm + variables: + CHROME_PATH: /usr/bin/chromium + before_script: + - !reference [.node-job, before_script] + - apt-get update -qq && apt-get install -y -qq --no-install-recommends chromium # Skip on Renovate MRs (same rationale as commits + the perf signal # on a dep bump is essentially zero). Push events on `main` still # run perf — we catch regressions immediately post-merge, not -- 2.30.2