ci: slash GitHub Actions minutes via paths-ignore + consolidation + caching #126
No reviewers
Labels
No labels
agent-context-drift
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: rstillwell/deckhearth#126
Loading…
Reference in a new issue
No description provided.
Delete branch "slash-ci-minutes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
GitHub Actions on PRs #124 + #125 hit a billing block today ("recent account payments have failed or your spending limit needs to be increased"). Per the user's max-savings preference, this PR aggressively reduces minute usage so CI doesn't hit the limit again on the rest of the in-flight convoy work.
What changed
1. `paths-ignore` on `ci.yml` + `preview-smoke.yml` (biggest win)
Doc-only PRs now trigger ZERO GitHub Actions jobs. Both workflows skip when ALL changed files match:
```yaml
paths-ignore:
```
Vercel still builds and Vercel comments still fire — Vercel is not on the Actions billing.
`visual-diff.yml` unchanged — it was already cost-conscious via a positive `paths:` allowlist (`pages/`, `components/`, `styles/**`, etc.).
2. Consolidate 6 grep-only forbidden-* jobs into 1
Previously 6 jobs × ~3s `actions/checkout` = ~18s of redundant checkout per PR. Merged into a single `forbidden-patterns` job with 6 sequential `::group::` sections, one FAIL flag at the bottom. All 6 checks still surface every violation in one run — same diagnostic behavior, per-file `::error file=...::msg` annotations preserved.
Removed top-level job names:
`pr-health-rollup.yml` only looks up `Lint` and `Schema map up to date` by name — unaffected.
3. Cache `node_modules` + Playwright browsers
3-5s on cache hit. `setup-node@v4`'s built-in `cache: npm` (caches `/.npm`) stays layered above this.Files
Estimated savings
This is short of the 70-80% I floated in chat — the real ceiling is limited by lint / vitest / migrate / Playwright runtime itself, all of which are kept on code-touching PRs (they're high-signal).
Verification
Test plan
This PR itself will be the canary — it touches `.github/workflows/**` so:
Pipeline directive
Made with Cursor
The latest updates on your projects. Learn more about Vercel for GitHub.