Skip to content

ci: fix Playwright chromium install hang on Node current/lts/*#4445

Merged
matthew-dean merged 2 commits into
masterfrom
matthew-dean-patch-1
Jun 11, 2026
Merged

ci: fix Playwright chromium install hang on Node current/lts/*#4445
matthew-dean merged 2 commits into
masterfrom
matthew-dean-patch-1

Conversation

@matthew-dean

@matthew-dean matthew-dean commented Jun 11, 2026

Copy link
Copy Markdown
Member

The playwright install chromium step was hanging for 1h+ on jobs using Node current and lts/* after the 163 MiB download completed (post-download extraction/setup blocked indefinitely).

Fixes:

  • Add timeout-minutes: 5 to fail fast instead of burning a runner for 6 hours
  • Add --with-deps to install required system libraries (likely cause of the hang)
  • Cache Playwright browser binaries via actions/cache using PLAYWRIGHT_BROWSERS_PATH pointed at ${{ github.workspace }}/.playwright-browsers (cross-platform)

Older LTS jobs (lts/-1, lts/-2, lts/-3) were unaffected and completed fine.

What:

Why:

Checklist:

  • Documentation
  • Added/updated unit tests
  • Code complete

Summary by CodeRabbit

  • Chores
    • Adjusted CI workflow's version-printing step.
    • Removed Playwright browser provisioning step so tests now proceed directly after dependencies are installed, simplifying the automated test run.

The `playwright install chromium` step was hanging for 1h+ on jobs using Node `current` and `lts/*` after the 163 MiB download completed (post-download extraction/setup blocked indefinitely).

Fixes:
- Add `timeout-minutes: 5` to fail fast instead of burning a runner for 6 hours
- Add `--with-deps` to install required system libraries (likely cause of the hang)
- Cache Playwright browser binaries via `actions/cache` using `PLAYWRIGHT_BROWSERS_PATH` pointed at `${{ github.workspace }}/.playwright-browsers` (cross-platform)

Older LTS jobs (lts/-1, lts/-2, lts/-3) were unaffected and completed fine.
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jun 11, 2026
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6a05911a-efa7-4830-b5ee-bf7abde9fdcf

📥 Commits

Reviewing files that changed from the base of the PR and between 2060a51 and e57b7ab.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

The CI workflow's test job updates the node/pnpm version print command and removes the Playwright "Install chromium" step, so the job now proceeds from dependency install/version printing directly to running node tests.

Changes

CI workflow test job tweaks

Layer / File(s) Summary
Update version print step
.github/workflows/ci.yml
Modifies the run command in the “Print node & npm version” step of the test matrix.
Remove Playwright chromium install
.github/workflows/ci.yml
Removes the pnpm exec playwright install chromium step that previously ran before the node tests step.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 I hopped through YAML fields with glee,
Tweaked the version print for all to see,
The chromium step hopped out the door,
Tests now sprint to run once more,
CI hums along—no extra chore.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically identifies the main change: removing the Playwright chromium installation step from the Node test job to fix hanging issues on Node current/lts/* versions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch matthew-dean-patch-1

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

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Line 48: Replace the mutable tag "actions/cache@v4" with a pinned immutable
commit SHA for the actions/cache action; locate the usage string "uses:
actions/cache@v4" in the CI workflow and update it to "uses:
actions/cache@<full-commit-sha>" (obtain the correct commit SHA from the
actions/cache repository) so the workflow references a specific immutable
revision.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 19d34bb3-4d13-4635-b484-fdb5b0c14516

📥 Commits

Reviewing files that changed from the base of the PR and between 060fd7f and 2060a51.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Comment thread .github/workflows/ci.yml Outdated
The `Install chromium` step was causing CI to hang indefinitely on Node current/lts/* (and timeout when we added a 5-min limit). Root cause: `test:node` only runs grunt node tests and has no browser dependency, so installing Chromium was never necessary in the first place.

Also drops the unused `env: PLAYWRIGHT_BROWSERS_PATH` and `actions/cache` step added in the previous commit.
@matthew-dean matthew-dean merged commit c228e52 into master Jun 11, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant