Skip to content

ci(web): pin the web build to ubuntu-24.04 - #896

Merged
grunch merged 1 commit into
mainfrom
ci/web-runner-ubuntu-24-04
Oct 24, 2026
Merged

grunch merged 1 commit into
mainfrom
ci/web-runner-ubuntu-24-04

Conversation

@grunch

@grunch grunch commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Linked issue

None: a maintainer pull request fixing CI (CONTRIBUTING.md § Contribution quality bar, exemptions). It unblocks #889, #890, #891, #892 and #894, whose Web (wasm build / smoke test) check fails for this reason alone.

Type

ci

What changes and why

ubuntu-latest moved from ubuntu-24.04 to ubuntu-26.04 between the last green run of main (2026-10-23, Image: ubuntu-24.04) and the pull request runs of 2026-10-24 (Image: ubuntu-26.04). Playwright 1.56.0, which test/web/smoke/package.json pins, does not know that image, so npx playwright install --with-deps chromium fails in "Install smoke test dependencies":

BEWARE: your OS is not officially supported by Playwright; installing dependencies for ubuntu26.04-x64 as a fallback.
Cannot install dependencies for ubuntu26.04-x64 with Playwright 1.56.0!
Failed to install browsers
Error: ERROR: Playwright does not support chromium on ubuntu26.04-x64

The web build job is pinned to ubuntu-24.04, where the pipeline last passed. Every other step of the job (wasm build, Flutter web build, bundle checks) already passed on 26.04; only the browser install fails.

Affected flow

No app flow. .github/workflows/web-build.yml, the reusable workflow behind the web job of ci.yml (every pull request) and the build of deploy-pages.yml (the deploy to https://mostro.network/app/).

Blast radius

  • deploy-pages.yml builds through the same job, so the next deploy from main would have failed the same way; it gets the same pin.
  • The other jobs on ubuntu-latest (Rust, Flutter, Design guide) pass on 26.04 and are left alone.
  • The Playwright browser cache key (playwright-Linux-1.56.0) does not name the image; the cached Chromium was downloaded on 24.04 runners, the image this goes back to.
  • Moving back to ubuntu-latest needs a Playwright bump: playwright-core 1.64.1 lists ubuntu26.04 in its supported hosts, 1.56.0 does not (checked in the npm packages). The comment on runs-on says so. Bumping Playwright changes the Chromium the smoke test runs, so it is left for a pull request of its own.

Platforms tested

GitHub Actions hosted runners (ubuntu-24.04). No app platform is affected.

Manual testing

Setup

The CI run of this pull request, on GitHub-hosted runners.

Steps

  1. The Web (wasm build / smoke test) check of this pull request runs.
    Expected: the job log shows Image: ubuntu-24.04, "Install smoke test dependencies" installs Chromium, and the smoke steps after it run and pass.
    (fails on main): on the current ubuntu-latest, the job stops at "Install smoke test dependencies" with Playwright does not support chromium on ubuntu26.04-x64 (for example the runs of feat(announcements): bridge the cache to Dart and add the Announcements toggle #889 and feat(stablecoins): phase 1 — catalogue, coin mark, default currency and the Market lock #894).
  2. Regression: the other checks of this pull request (Rust, Flutter, Design guide, iOS).
    Expected: they pass as on the last run of main; this change does not touch them.

Not covered

  • The deploy from main (deploy-pages.yml): it runs only after merge, on the same pinned job.

Screenshots

No visible change.

Automated tests

None: the change is the runner image of a CI job, and its test is that job running on this pull request.

Checklist

  • cd rust && cargo fmt --check && cargo clippy -- -D warnings && cargo test pass locally. Not applicable: no Rust change.
  • dart format --set-exit-if-changed ., flutter analyze and flutter test pass locally. Not applicable: no Dart change.
  • Changed rust/src/api/ or an .arb: not applicable.
  • New or changed user-facing text: not applicable.
  • Changed an automation identifier: not applicable.
  • Protocol or transport change: not applicable.
  • Behaviour or contract change: not applicable.
  • Commits are signed
  • I ran the Manual testing steps myself and can explain every line of this diff. The steps are the CI run of this pull request.

AI assistance

Diagnosed and written with Claude Code (Claude Opus 5.5): the failing job logs of #889 and #894, the runner image of the last green main run, and the supported hosts in the Playwright packages.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R4vpdmBrHfsurXbRkn5VHs

Summary by CodeRabbit

  • Chores
    • Web builds now run on Ubuntu 24.04, providing a consistent runner environment. This is an internal build-pipeline update and does not change user-facing functionality.

ubuntu-latest moved to ubuntu-26.04, and Playwright 1.56.0 cannot
install Chromium there: "Playwright does not support chromium on
ubuntu26.04-x64". The smoke test's dependency step failed on every pull
request, and deploy-pages.yml, which builds through the same reusable
workflow, would fail the next deploy from main.

Pin the job to ubuntu-24.04, the image the last green run of main used.
Moving back to ubuntu-latest goes with a Playwright bump that supports
it (1.64.1 does).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R4vpdmBrHfsurXbRkn5VHs
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T19:32:30.906148Z c7cc314 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 93ba348 and c7cc314.

Files selected for processing: 1
  • .github/workflows/web-build.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The web-build workflow now runs on ubuntu-24.04. Comments document the Playwright versions associated with Chromium installation support on newer runner images.

Changes

Web build runner

Layer / File(s) Summary
Pin the web build runner
.github/workflows/web-build.yml
The job runner changes from ubuntu-latest to ubuntu-24.04. Comments state that Playwright 1.56.0 cannot install Chromium on the current ubuntu-latest image and identify Playwright 1.64.1 as supporting it.

Priority: Normal

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Suggested reviewers: matobi98

Merge Risk: Minimal · up to c7cc3

The runner pin is mergeable with no identified current-head risk.

Pre-merge checks: Passed 5
Check name Status Explanation
Description check Passed The description is complete and relevant. It explains the CI failure, the runner pin, affected workflows, blast radius, validation steps, limitations, and AI assistance. The unchecked local test items…
Title check Passed The title is concise, specific, and accurately identifies the primary change: pinning the web build to Ubuntu 24.04.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description is complete and relevant. It explains the CI failure, the runner pin, affected workflows, blast radius, validation steps, limitations, and AI assistance. The unchecked local test items are correctly marked not applicable, and the required CI validation is documented.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit hops beside the build,
Ubuntu keeps the runner stilled.
Chromium waits for tools in place,
Playwright notes the version’s pace.
The workflow’s ready for its race.

Comment @coderabbitai help to get the list of available commands.

@grunch
grunch merged commit e1a7a23 into main Oct 24, 2026
6 checks passed
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