Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/quality-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,15 @@ jobs:
- name: cf-exemptions — every suppression traces to a reasoned entry
run: cf-exemptions

- name: cf-import-contract — the committed layering contract holds
# Same command shape as self-ci. The consumer's ONE committed import
# contract ([tool.importlinter] in pyproject.toml) is held in three
# passes; a repo with no committed contract fails CONTRACT_MISSING —
# the contract must be merged BEFORE the consumer's pin reaches this
# commit. Exit 2 is the gate itself failing to run (typed GateError
# on stderr — environment trouble is never a violation verdict).
run: cf-import-contract --root .

- name: mypy through the baseline ratchet (a Python repo MUST carry a baseline)
# The pipe is the design: mypy exits nonzero whenever baselined debt
# exists; mypy-baseline filter is the gate (0 new errors), so the step
Expand Down
1 change: 1 addition & 0 deletions tests/test_workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ def test_gate_runs_full_battery_in_order() -> None:
"cf-mirror-check",
"cf-recursion-check",
"cf-exemptions",
"cf-import-contract",
"mypy-baseline filter",
"pytest",
]
Expand Down
Loading