42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# CI quality-gate orchestration
|
|
|
|
`config/ci/gates.json` is the executable registry for all 26 gates. The Gitea
|
|
adapter runs each gate as an independent matrix check with full fan-out and no
|
|
soft-fail wiring.
|
|
|
|
The dependency graph is:
|
|
|
|
```text
|
|
MERGE_READY
|
|
-> RELEASE_READY
|
|
-> PROD_PROMOTION_READY
|
|
-> FIELD_SLO_READY
|
|
|
|
DOCUMENTATION_READY (off-chain)
|
|
```
|
|
|
|
Pull requests and `develop` pushes evaluate merge readiness. Version tags
|
|
evaluate merge then release readiness. Production and field evaluation require
|
|
an explicit workflow dispatch. The field tier cannot pass until the 28-day
|
|
sample threshold decision is recorded. Documentation readiness consumes the
|
|
canonical project-note evidence in which both scoped diagrams already received
|
|
100/100 `PASS_SCOPED`; the repo ledger preserves the evidence scope and
|
|
canonical digests.
|
|
|
|
All jobs upload the shared `artifacts/` tree even after failure. Numeric
|
|
retention remains an organization/provider decision; the workflow intentionally
|
|
does not invent `retention-days`. The relative minimums are recorded in the
|
|
registry: merge evidence through the PR decision, coherent release evidence
|
|
through the next release promotion, drill evidence through the next production
|
|
promotion, and field evidence through aggregation.
|
|
|
|
Repository variables required by higher tiers:
|
|
|
|
- `HOSTING_BASE_URL` for live header verification
|
|
- `FIELD_WEB_VITALS_INPUT` for the privacy-approved field sample document
|
|
- `MIN_ELIGIBLE_SAMPLES` after the baseline decision
|
|
|
|
Branch protection must mark each `FE-GATE-* / <name>` check required for its
|
|
declared tier. This repository cannot configure server-side protection by
|
|
committing a file.
|