chore(ci): run E2E on the dev runner label #436

Merged
Claude-Run merged 1 commit from chore/BUNYIP-446-e2e-dev-runner-label into main 2026-08-02 15:51:54 +02:00
Member

The e2e job launched Playwright's bundled Chromium on the base runner image and installed ~30 X / GTK / NSS / glib packages with sudo zypper on every run. Those libraries are not missing from the fleet: the opensuse image installs them (and pre-bakes the pinned 1.60.0 browser binaries) in its dev stage, by design, so the fix is the dev label rather than a per-run package solve. Switch runs-on to RUNS_ON_OPENSUSE_DEV_LATEST, delete the Install Chromium system libraries step, and keep playwright install chromium as the drift guard against the image's pre-baked browsers.

Widen scripts/check-runner-labels.sh so the removal is enforced: rule 2b rejects a run-time install of the browser system libraries with a message naming RUNS_ON_OPENSUSE_DEV_LATEST, and the header states the general principle (the image provides the job's runtime dependencies) instead of only the C toolchain. It matches by package name, not by <pm> install ..., because the deleted step was a folded YAML command whose package list sat on lines the package manager never appeared on, which is why rule 2 never caught it.

e2e-pr.yml stays on the base label: it downloads Chromium but never launches one. Its comment now says that is why. Doc sweep: the e2e/README.md CI variables table moves e2e to the DEV row and widens that row's reason, and the check-runners justfile comment covers both package classes.

#BUNYIP-446

The `e2e` job launched Playwright's bundled Chromium on the base runner image and installed ~30 X / GTK / NSS / glib packages with `sudo zypper` on every run. Those libraries are not missing from the fleet: the opensuse image installs them (and pre-bakes the pinned 1.60.0 browser binaries) in its dev stage, by design, so the fix is the dev label rather than a per-run package solve. Switch `runs-on` to `RUNS_ON_OPENSUSE_DEV_LATEST`, delete the `Install Chromium system libraries` step, and keep `playwright install chromium` as the drift guard against the image's pre-baked browsers. Widen `scripts/check-runner-labels.sh` so the removal is enforced: rule 2b rejects a run-time install of the browser system libraries with a message naming `RUNS_ON_OPENSUSE_DEV_LATEST`, and the header states the general principle (the image provides the job's runtime dependencies) instead of only the C toolchain. It matches by package name, not by `<pm> install ...`, because the deleted step was a folded YAML command whose package list sat on lines the package manager never appeared on, which is why rule 2 never caught it. `e2e-pr.yml` stays on the base label: it downloads Chromium but never launches one. Its comment now says that is why. Doc sweep: the `e2e/README.md` CI variables table moves `e2e` to the DEV row and widens that row's reason, and the `check-runners` justfile comment covers both package classes. #BUNYIP-446
chore(ci): run E2E on the dev runner label
All checks were successful
E2E PR gate / Install + reachability (no deployment secrets) (pull_request) Successful in 16s
Check / fmt + clippy + build + tests (pull_request) Successful in 13m36s
Create release / Create release from merged PR (pull_request) Has been skipped
3123b790dc
The `e2e` job launched Playwright's bundled Chromium on the base runner image and installed ~30 X / GTK / NSS / glib packages with `sudo zypper` on every run. Those libraries are not missing from the fleet: the opensuse image installs them (and pre-bakes the pinned 1.60.0 browser binaries) in its dev stage, by design, so the fix is the dev label rather than a per-run package solve. Switch `runs-on` to `RUNS_ON_OPENSUSE_DEV_LATEST`, delete the `Install Chromium system libraries` step, and keep `playwright install chromium` as the drift guard against the image's pre-baked browsers.

Widen `scripts/check-runner-labels.sh` so the removal is enforced: rule 2b rejects a run-time install of the browser system libraries with a message naming `RUNS_ON_OPENSUSE_DEV_LATEST`, and the header states the general principle (the image provides the job's runtime dependencies) instead of only the C toolchain. It matches by package name, not by `<pm> install ...`, because the deleted step was a folded YAML command whose package list sat on lines the package manager never appeared on, which is why rule 2 never caught it.

`e2e-pr.yml` stays on the base label: it downloads Chromium but never launches one. Its comment now says that is why. Doc sweep: the `e2e/README.md` CI variables table moves `e2e` to the DEV row and widens that row's reason, and the `check-runners` justfile comment covers both package classes.

#BUNYIP-446
Claude-Run deleted branch chore/BUNYIP-446-e2e-dev-runner-label 2026-08-02 15:51:54 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/bunyip!436
No description provided.