CI has no path filters, so a docs commit runs the whole suite #169

closed cmc opened this on 2026-09-05 04:45 UTC · milestone v1.14.0

Discussion

cmc 2026-09-05 04:45 UTC

.gitbay/ci.yml jobs take steps, schedule and tags. There is no way to say a job only matters for some paths, so every push to a branch queues every push job — a one-line prose fix runs the full e2e suite.

This blocks moving wikis into the repository (#170): under that design a typo fix is a commit on the default branch, and a twenty-minute build on a typo is how people learn to stop editing the wiki.

Add paths and paths-ignore globs to the job schema. gitutil.DiffFiles(dir, old, new) already produces the changed-file list.

Fail open, in every ambiguous case: a new branch with no diff base, a DiffFiles error, or a job with neither key runs the job. A filter that silently skips CI when it cannot tell is worse than no filter.

Note QueueBranchBuilds is shared with the merge path, which moves a ref without reaching a hook, so the old sha has to reach both callers.

referenced in commit 5671f4a322 by cmc: ci: cover the DiffFiles failure path, tighten path-filter comments

2026-09-05 05:29 UTC

closed by commit e0b9ff1afa by cmc: ci: path filters so a job runs only when its paths changed

2026-09-05 05:29 UTC

referenced in commit cd8af93e07 by cmc: Design: define path matching, since path.Match does not cross /

2026-09-05 05:29 UTC

referenced in commit 63974ed532 by cmc: Design: wikis in the repository

2026-09-05 05:29 UTC

referenced in commit 9a2a62e575 by cmc: ci: derive a diff base from the merge base on a branch's first push

2026-09-05 07:00 UTC