test(ci): regression for all-required aggregation fail-closed gate (#2615) #2633
Reference in New Issue
Block a user
Delete Branch "fix/all-required-aggregation-regression-test"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes tracking: molecule-core#2615
Extracts the inline CI / all-required aggregation logic from ci.yml into
.gitea/scripts/all-required-check.shand adds a regression test that locks in the fail-closed contract.Comprehensive testing performed
bash .gitea/scripts/tests/test_all_required_check.sh— all 9 cases passed.python -m pytest .gitea/scripts/tests -q— 390 passed, 2 skipped.Local-postgres E2E run
N/A: this change touches only CI workflow/script files and pytest/shell tests; no database or service code changed.
Staging-smoke verified or pending
N/A: CI/script-only change. The new shell test runs in
test-ops-scripts.yml; no runtime staging surface.Root-cause not symptom
This PR closes the coverage gap where the CI / all-required fail-closed aggregator had no regression test; a weakened aggregator could let a red sub-check pass.
Five-Axis review walked
needs:+ jobname:for umbrella-reaper derivation.|| trueswallow.No backwards-compat shim / dead code added
Yes. The inline logic is removed, not duplicated.
Memory consulted
None applicable; this is a new regression test following existing
test_jq_install.sh/test_ci_workflow_bookkeeping.pypatterns.Also updates
umbrella-reaper.pyto derive required sub-jobs from the authoritativeneeds:list + jobname:fields instead of parsing the now-extracted run block.Refs: molecule-core#656 (Phase 4 all-required hard-gate)
🤖 Generated with Claude Code
APPROVED. Reviewed head
16023acbec. The extracted all-required-check.sh keeps the CI / all-required aggregation fail-closed: only success is accepted, failure/skipped/cancelled and caller-shape errors return non-zero, and the workflow invokes the tested script rather than re-inlining logic. The umbrella-reaper update derives subcontexts from all-required needs plus job display names, which is more robust against run-block shape changes. Local shell regression test passed; pytest is not installed in this container, but the PR's Ops Scripts Tests context is green. Relevant CI contexts checked: CI / all-required, E2E API Smoke Test, and Ops Scripts Tests are green. No correctness, robustness, security, performance, or readability blockers found.