Commit c125c6a60e

c125c6a60e6f7b9880a27257bd1f9b2a2efefe6c

parent: f9e5b19cff

Unsigned

cmc <hello@cleberg.net> · 2026-07-16 04:38 UTC

ci: skip the suite for root markdown changes

A README or ROADMAP edit spent five minutes on a macOS runner building an iOS
app to prove that prose had not broken it.

Scoped to `*.md`, which in a GitHub path filter matches root level only, so the
four root docs are skipped while Docs/**.md and everything under Hutch/ stay
gated. A skip rule that is too broad is how a real change slips through
ungated.

Safe on pull_request because main has no required status checks. A run skipped
by a path filter never reports, so a required check would leave a docs-only PR
waiting on a status that never arrives.

Layout: unified · split

.github/workflows/test.yml +9
@@ -3,10 +3,19 @@ name: Tests
3# builds.sr.ht is the canonical CI for this project, but it has no macOS images 3# builds.sr.ht is the canonical CI for this project, but it has no macOS images
4# and will not add them, so xcodebuild cannot run there. This job exists to run 4# and will not add them, so xcodebuild cannot run there. This job exists to run
5# the test plan on the GitHub mirror; see builds/swift-ci.yml for the rest. 5# the test plan on the GitHub mirror; see builds/swift-ci.yml for the rest.
6# paths-ignore is deliberately `*.md`, which matches root level only. Docs/**.md
7# still runs the suite, and so does anything under Hutch/ — a skip rule that is
8# too broad is how a real change slips through ungated.
9#
10# Safe on pull_request only because main has no required status checks: a run
11# skipped by a path filter never reports, so a required check would leave a
12# docs-only PR waiting forever.
6on: 13on:
7 push: 14 push:
8 branches: [main] 15 branches: [main]
16 paths-ignore: ['*.md']
9 pull_request: 17 pull_request:
18 paths-ignore: ['*.md']
10 workflow_dispatch: 19 workflow_dispatch:
11 20
12# Without this, GITHUB_TOKEN inherits the repository default, which is 21# Without this, GITHUB_TOKEN inherits the repository default, which is