Skip to content

devops(ci): warm up Chrome before integration tests; close superseded roll PRs - #20

Merged
b1zya merged 2 commits into
mainfrom
fix-ci-cold-chrome
Nov 8, 2026
Merged

b1zya merged 2 commits into
mainfrom
fix-ci-cold-chrome

Conversation

@b1zya

@b1zya b1zya commented Nov 8, 2026

Copy link
Copy Markdown
Owner

Unblocks the open roll PRs (#19, and #17 which it supersedes).

Flaky integration tests on a cold runner

The three red CI runs on the roll branches (41455020026, 42034887367, and the macOS cancel in 42222491837 aside) all failed in tests/integration/config.spec.ts, the first tests to launch Chrome:

  • the first open spent 40-58 s before the daemon was listening (green runs: 2-26 s), so the daemon sees our merged config… hit the 60 s test timeout;
  • on Linux the chrome --version probe hit its 10 s limit, so --config points at… got headless-user-agent-unknown (leak) instead of the headless-user-agent note.

Nothing in the roll caused it: the runner reads the preinstalled Chrome from a cold disk on first launch. CI now pays that once in a Warm up Chrome step (open about:blank + close in a throwaway state dir, 5 min limit, non-fatal) before test:integration. Job names are unchanged, so the ruleset's required checks still match.

Roll workflow

  • After creating or updating its PR, upstream-roll.yml closes older open roll_* PRs (Superseded by #N, branch deleted). A manual run for an older version leaves newer rolls alone (sort -V).
  • The "could not merge" comment now names the real blocker: the pull_request CI run held in action_required for a push by the workflow token, which is the only run the ruleset counts. .claude/skills/dev/roll.md says the same.

Checked

  • npm run check, npm run test:unit (129 passed); the warm-up commands run locally; the superseding loop dry-run against the open PRs closes only roll_1.64.2.

🤖 Generated with Claude Code

b1zya added 2 commits November 8, 2026 12:09
A fresh runner reads the preinstalled Chrome from a cold disk; its first
launch took up to a minute and timed out whichever config tests ran
first, and starved the 10 s chrome --version probe. Seen on the roll
branches (runs 41455020026, 42034887367).
A newer roll left the older roll_* PR open for good (#17 next to #19).
The merge-failure comment now names the real blocker: the pull_request
CI run held for approval on a push by the workflow token.
@b1zya
b1zya merged commit 60a9f61 into main Nov 8, 2026
5 checks passed
@b1zya
b1zya deleted the fix-ci-cold-chrome branch November 8, 2026 09:13
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