Skip to content

ci: skip Chromium install + e2e render for docs-only changes#58

Merged
jbrecht merged 1 commit into
mainfrom
ci-skip-render-on-docs
Jun 15, 2026
Merged

ci: skip Chromium install + e2e render for docs-only changes#58
jbrecht merged 1 commit into
mainfrom
ci-skip-render-on-docs

Conversation

@jbrecht

@jbrecht jbrecht commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Skips the expensive part of CI (Playwright Chromium install + e2e render — ~3 min) when a PR changes only docs.

How

A dorny/paths-filter step with predicate-quantifier: 'every' sets docs_only=true only when every changed file matches docs/**, **/*.md, LICENSE, or COMMERCIAL.md. The Chromium install and e2e render are gated on docs_only != 'true'.

  • ffmpeg stays unconditional — the unit tests need it (cache.test.ts normalizes audio through ffmpeg), and it's cheap (~20s). Build/typecheck/unit always run too, so docs PRs still get a meaningful green check.
  • Conservative by design: a mixed PR (docs and code) fails the every predicate → full gate runs. Only a 100%-docs change skips Chromium + e2e.
  • Future-proof: the test job always runs and reports, so this stays correct if required-status-check branch protection is added later.

Note

This PR touches only .github/workflows/ci.yml, so it runs the full gate — confirming the normal path is intact. (An earlier revision also moved the ffmpeg install behind the gate, which broke the ffmpeg-dependent unit test; fixed by keeping ffmpeg unconditional.)

🤖 Generated with Claude Code

A dorny/paths-filter step sets docs_only=true only when EVERY changed
file is under docs/, *.md, LICENSE, or COMMERCIAL.md. The two expensive
steps — the Playwright Chromium install (--with-deps) and the e2e render
(~3 min total) — are gated on docs_only != 'true', so a docs/README PR
skips them while any code/config/lockfile change runs the full gate.

ffmpeg installs unconditionally (it's cheap and the unit tests need it —
cache.test.ts normalizes audio through it), and build/typecheck/unit
always run, so docs PRs still get a meaningful green check.

Conservative by design: a mixed PR (docs + code) fails the 'every'
predicate, so it runs e2e.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jbrecht jbrecht force-pushed the ci-skip-render-on-docs branch from 33d5947 to 86d9f8e Compare June 15, 2026 22:41
@jbrecht jbrecht changed the title ci: skip the render gate for docs-only changes ci: skip Chromium install + e2e render for docs-only changes Jun 15, 2026
@jbrecht jbrecht merged commit aaada1d into main Jun 15, 2026
1 check 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