diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22f41f9..000e66d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,22 @@ name: CI +# Docs-only changes run nothing (B-071). paths-ignore skips the run only when every changed +# file matches; any other file, or a diff too large to filter, runs everything. This is +# safe only while master has no required status checks: a required check on a skipped +# workflow waits on "Expected" forever. Nothing CI runs reads a .md file. on: push: branches: [main, master] + paths-ignore: + - "docs/**" + - ".claude/**" + - "**.md" pull_request: branches: [main, master] + paths-ignore: + - "docs/**" + - ".claude/**" + - "**.md" # A new push to a PR cancels its superseded run (a rebase used to run both). # Pushes to master are never cancelled: each merge gets its own complete run. diff --git a/.github/workflows/tripwire.yml b/.github/workflows/tripwire.yml index 6a70a2d..7aa760c 100644 --- a/.github/workflows/tripwire.yml +++ b/.github/workflows/tripwire.yml @@ -5,8 +5,9 @@ name: Retrieval tripwire # 3 min for everything else. # # PRs run it only when they touch the retrieval path listed below. Every push to -# master runs it, so a regression a PR skipped is still caught at merge. Run it by -# hand from the Actions tab (workflow_dispatch) for anything in between. +# master that changes anything besides docs runs it, so a regression a PR skipped is +# still caught at merge; docs-only merges skip it (B-071). Run it by hand from the +# Actions tab (workflow_dispatch) for anything in between. # # Keep the list generous: a path missing here is a regression that shows up only # after merge. Left out on purpose: model_host.py / model_client.py (on a CPU runner @@ -16,6 +17,10 @@ name: Retrieval tripwire on: push: branches: [main, master] + paths-ignore: + - "docs/**" + - ".claude/**" + - "**.md" pull_request: branches: [main, master] paths: