Skip to content

Use Chromium Headless Shell for smaller CI downloads#2607

Open
mroderick wants to merge 1 commit intocodebar:masterfrom
mroderick:chromium-headless-shell
Open

Use Chromium Headless Shell for smaller CI downloads#2607
mroderick wants to merge 1 commit intocodebar:masterfrom
mroderick:chromium-headless-shell

Conversation

@mroderick
Copy link
Copy Markdown
Collaborator

@mroderick mroderick commented May 4, 2026

Summary

Switch from full Chromium to Chromium Headless Shell for browser tests in CI.

Changes

  • Update CI workflow to install chromium-headless-shell instead of chromium
  • Update cache key to use headless-shell specific key
  • Add documentation to capybara.rb

Results ✅

Performance Comparison

Metric Full Chromium Headless Shell Improvement
Browser size ~336MB ~189MB -44%
Avg CI time 4m16s 3m31s -18%
Group 0 2m40s 2m17s -14%
Group 1 2m05s 1m51s -11%
Group 2 2m31s 2m03s -19%
Group 3 2m31s 2m03s -19%
Group 4 2m43s 2m24s -12%
Group 5 3m48s 3m31s -7%

Compatibility

100% compatible - All tests pass including TomSelect-dependent tests.

The headless shell uses the same V8 engine and Blink renderer as full Chrome.

References


Ready for review - This is a safe optimization with no tradeoffs.

This reduces the Playwright browser download size by ~44%
(189MB vs 336MB for full Chromium) while maintaining full
web compatibility.

Changes:
- Update CI to install chromium-headless-shell instead of chromium
- Add documentation to capybara.rb about headless shell usage

The headless shell uses the same V8 engine and DOM implementation
as full Chrome, so all JavaScript-dependent tests work correctly.

See: https://playwright.dev/docs/browsers#chromium-headless-shell
@mroderick mroderick marked this pull request as ready for review May 4, 2026 19:56
@mroderick mroderick changed the title [DRAFT] Use Chromium Headless Shell for smaller CI downloads Use Chromium Headless Shell for smaller CI downloads May 5, 2026
@mroderick mroderick requested a review from olleolleolle May 6, 2026 18:25
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