feat(rake): cascade input — one reusable, least-privilege caller (closes #362) - #383
Conversation
…rivilege caller Closes #362. Supersedes #376's sibling-workflow approach. One reusable. One concern. Extended via input: - generic-rake.yml gains cascade boolean (default true) - tests-passed job gated by if: inputs.cascade - master/rake_test_only.yml is a thin caller (cascade: false, permissions: contents: read) — not a 144-line duplicate reusable - VARIANT_REGISTRY row for the caller-template pair (class g) Existing cascade consumers unchanged (cascade defaults true).
|
Rejecting this PR as violating the standing rule you injected on ci#375 (comment) at 10:12Z — 30 minutes before this PR merged:
The new template pins to a floating branch: Per your own standing rule and the three-tier discipline codified in #372 (consumers pin Minor: caller passes Structure otherwise clean: 🤖 |
Summary
Closes #362. Supersedes #376.
Consolidated model-driven design — one reusable, one concern, extended via input. Rejects the sibling-workflow fragmentation in #376 (144-line near-duplicate of
generic-rake.yml).What lands
.github/workflows/generic-rake.yml— newcascadeboolean input (defaulttrue).tests-passedjob gated byif: inputs.cascade. Existing consumers unchanged.cimas-config/gh-actions/master/rake_test_only.yml— thin caller (cascade: false,permissions: contents: read). Not a second reusable.VARIANT_REGISTRYrow for the caller-template pair (class g drift-audit) — delta 18, verified.docs/generic-rake.md— documents the input, when to use cascade-off, when not to.Why not #376's shape
Issue #362 itself listed this as Option 2. Option 1 (split reusables) was the #376 path; we take Option 2 because GHA still needs a thin caller-template variant for the static
permissions:block, but the reusable itself must not be duplicated.Test plan
PHASE_5_VARIANT_DRIFT_ONLY=1— all 4 registry entries in synccascadedefaults true)master/rake_test_only.yml