Problem: A docs/asset-only change (e.g. #476, swapping a .gif/.cast) triggers the full ~19min Rust build + E2E + bench, and main is protected so even a one-line asset swap needs a PR.
Why naive fix fails: build-rust/e2e/bench are required checks. Adding plain paths-ignore makes them not run → required check stays pending → blocks merge.
Proposed fix:
changes job (dorny/paths-filter) → code vs docs outputs.
- Gate heavy jobs on
needs.changes.outputs.code == 'true'.
- A final
ci-complete aggregate job (if: always()) that's the single required check, passing when heavy jobs succeed or are correctly skipped for docs.
- Allow trivial docs/asset commits straight to main (or auto-merge label).
Docs paths: docs/**, README.md, *.md, docs/assets/**.
Problem: A docs/asset-only change (e.g. #476, swapping a .gif/.cast) triggers the full ~19min Rust build + E2E + bench, and main is protected so even a one-line asset swap needs a PR.
Why naive fix fails:
build-rust/e2e/benchare required checks. Adding plainpaths-ignoremakes them not run → required check stays pending → blocks merge.Proposed fix:
changesjob (dorny/paths-filter) →codevsdocsoutputs.needs.changes.outputs.code == 'true'.ci-completeaggregate job (if: always()) that's the single required check, passing when heavy jobs succeed or are correctly skipped for docs.Docs paths:
docs/**,README.md,*.md,docs/assets/**.