Repository navigation
ci: fail browser install when system libraries are missing (WebKit could not launch) - #3487
Conversation
On a browser-cache hit the release matrix ran install-deps and then the browser download in a shell without set -e, so a failed install-deps was masked by the successful download. The step reported success with apt libraries missing, and every WebKit test died at launch with libevent-2.1.so.7 not found (main runs 38224928367 and 38228339791). - set -e in the release matrix and both Chromium setup actions - launch-probe the installed engine inside each install attempt so a missing library fails and retries in the install step - finish an interrupted dpkg before retrying after a timeout Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
🏁 CodeAnt Quality Gate ResultsCommit: ✅ Overall Status: PASSEDQuality Gate Details
|
Merging this PR will not alter performance
|
…e apt lock on retry The dispatched browser matrix (run 38234519037) now failed at install, as intended, and showed the real cause: the runner's apt sources resolve through /etc/apt/apt-mirrors.txt, which the existing sed did not rewrite, so apt-get update waited on azure.archive.ubuntu.com until the 180 s attempt timeout. timeout killed the attempt's shell but not the root apt-get, which kept the apt lock and failed both retries. - rewrite apt-mirrors.txt alongside the sources files (all three installers) - pkill the orphaned apt-get before each retry Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
…setup actions Matches the release matrix recovery so a timed-out attempt that leaves dpkg half-configured does not fail every retry in the required UI and Lighthouse gates. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
…aunch fix Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
There was a problem hiding this comment.
BigSimmo has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
Claude encountered an error after 2s —— View job I'll analyze this and get back to you. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoFail Playwright browser installation when system libraries are missing
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
No findings for this group No findings for this group No findings for this group Resolved findings 1.
|
Qodo Fixer✅ Merged (0) · ☑ Fixed (0) Process
|
CodeAnt PR Risk: Medium Risk
Assessed commit: |
…ned dpkg Review follow-up: the recovery ran outside the 180 s attempt timeout, so a stalled dpkg --configure -a could hold the loop to the job limit, and only apt-get was stopped, so a dpkg child could keep the lock. Stop dpkg too and give recovery its own 120 s bound. The contract test now also pins the launch probe after the cache-hit/cold-cache branch closes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
|
Code review by qodo was updated up to the latest commit 54f2524 |
|
CodSpeed Performance Analysis reports a -63.2% regression on 54f2524. It is not from this PR. The diff changes only CI workflow and action YAML, one contract test and a ledger inbox JSON file, and none of them are code the benchmarks ( Generated by Claude Code |
Code Review ✅ Approved 1 closed / 1 findings🟡 Medium risk · CI browser setup now kills apt-get/dpkg and reconfigures packages on retry, which could leave dependency state inconsistent and block subsequent installs. Fixes WebKit browser setup in CI by adding a launch probe,
✅ 1 closed✅ Edge Case: Shared actions kill apt-get but skip the dpkg --configure -a recovery
Review coverage🤖 Auto-approval Approved 📋 Rules No rules evaluated 🧪 Functional validation Not enabled · Set up OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
User description
Requested by Josh · project thread
Summary
Before: on main, many WebKit legs of the advisory release browser matrix failed every test at
browserType.launchbecauselibevent-2.1.so.7was missing (runs 38224928367 and 38228339791, e.g.release-browser-matrix (webkit, tablet, 4, 4): 196 failed, all at launch). The "Install Playwright browsers" step still reported success.After: WebKit installs its system libraries and launches on every leg. In dispatch run 38236585559 (head 7e2d712) every WebKit leg's install step passed, including the launch probe, and the log shows
libevent-2.1-7t64being installed.Cause, confirmed from the logs:
/etc/apt/apt-mirrors.txt, which points at the azure mirror that stalls. The existing mirror rewrite missed that file, soinstall-depsran past the 180 s attempt timeout.timeoutkilled the attempt shell but not the rootapt-get, which kept the apt lock, so retries failed too.set -e, so the failedinstall-depswas masked by the successful cached browser install and the step exited 0 with libraries missing.How:
/etc/apt/apt-mirrors.txt.set -ein the release matrix install function and in the same pattern insetup-ui-e2eandsetup-lighthouse-chromium.apt-getis stopped andsudo dpkg --configure -afinishes any interrupted install.tests/ci-browser-matrix-coverage.test.ts. No test was skipped or disabled; the CI speed-up from Cut CI wait: split the tablet and Safari release legs, rebalance PR browser groups, stop a frozen unit batch sooner #3451 is untouched.docs/outstanding-issues-inbox/) records the genuine test failures below for follow-up.Areas touched: Delivery and assurance
Verification
npx vitest run tests/ci-browser-matrix-coverage.test.ts tests/ci-cache-safety.test.ts→Tests 90 passed (90); prettier clean;check:outstanding-issuespassed.Genuine test failures now visible (not fixed here)
Now that WebKit launches, 26 tests fail on their own merits (about 1,400 pass). They were hidden before because every test died at launch. Many tablet failures are 1.0 min timeouts and may share a cause.
ui-accessibility176, 377, 597;ui-overlap239, 437, 549;ui-teaching83;ui-tools587, 672, 1084, 2183, 2295, 2490, 2674, 2946;ui-universal-search360.ui-my-day-calendar116;ui-roster-team100, 174;ui-stress346.ui-cme-phone351.ui-accessibility295.ui-on-call-boards558.ui-phone-scroll-assessments19;ui-phone-scroll-page-owned454.Risk and rollout
🤖 Generated with Claude Code
https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
CodeAnt-AI Description
Make browser setup detect missing dependencies and recover from stalled installs
What Changed
Impact
✅ Fewer WebKit tests fail at browser launch✅ Missing browser dependencies are caught during setup✅ Fewer retries blocked by a stuck package install💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.