docs: how Backend CI gates a merge, and why it isn't the pytest job - #2268
Conversation
Documents `backend-ci-gate` (added in #2267): why requiring `pytest` reads green when a red linter skips it, why workflow-level path filtering hangs a required check at Pending instead, what the gate's decision table is, and the six sibling workflows that cannot be required until they get the same treatment. Also records that `enforce_admins` is false, so the gate is a strong default rather than an absolute one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Reviewed — this is a docs-only change ( Verified against source:
Minor notes, non-blocking:
On the stated purpose of this PR (skip-path verification for #2267 — confirming Nothing to change — this is accurate, well-scoped, and directly useful for anyone confused about why |
Documents
backend-ci-gate(added in #2267) indocs/development/test-suite.md:pytestjob reads green when a red linter skips it (GitHub reports a conditionally-skipped job as Success);--self-tests before every evaluation;frontend*,production-stack,redis-integration) that cannot be required until they get the same always-runs gate job;enforce_adminsisfalse, so the gate is a strong default rather than an absolute one.This PR doubles as the skip-path verification for #2267
#2267's own diff touched
backend.yml, so it only ever exercisedbackend=true. This PR is docs-only, so it should exercise the other branch:changes→backend=falselinter→ skippedpytest→ skippedbackend-ci-gate→ successIf that is what the checks below show, the gate is safe to make a required status check. If
backend-ci-gateis missing or red here, it is not — do not enable branch protection until this PR is green.🤖 Generated with Claude Code