You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The release workflow's test gate is dead code and has never fired. .github/workflows/release.yml runs tests with continue-on-error: true (line 44) and gates tag deletion on steps.test.conclusion == 'failure' (line 48) — but under continue-on-error a failed step's conclusion is forced to success; only outcome records the failure. Verified on real runs: v1.4.0 and v1.4.1 both had failing tests in Run Tests, conclusion=success, Delete-tag skipped, release published.
SCOPE BOUNDARY
The release workflow's gate, plus the suite hygiene needed to make flipping it safe. Not PR-time CI, which is its own concern. Do not just flip the field — see the caveat.
Flipping the field alone blocks every release. The gate becomes real against a suite that is not currently CI-green, so the first tag after the flip fails and stays failing. That is why the flip and the suite work are one issue and not two.
continue-on-error must stay. Removing it fails the job immediately and the tag-deletion step never runs — the opposite of the intent. The two settings are a pair, and Fix dead release test gate: use outcome, not conclusion #306 comments them as such.
A gate that fires deletes the pushed tag. Worth exercising on a scratch tag before trusting it on a real release.
DEFINITION OF DONE
Gate fires on a deliberately broken test, verified on a scratch tag or a workflow_dispatch dry run — demonstrated, not reasoned about.
Release workflow green on an honest, fully-run suite; tests skipped by gating are visibly reported rather than silently absent.
PROBLEM
The release workflow's test gate is dead code and has never fired.
.github/workflows/release.ymlruns tests withcontinue-on-error: true(line 44) and gates tag deletion onsteps.test.conclusion == 'failure'(line 48) — but undercontinue-on-errora failed step'sconclusionis forced tosuccess; onlyoutcomerecords the failure. Verified on real runs: v1.4.0 and v1.4.1 both had failing tests in Run Tests,conclusion=success, Delete-tag skipped, release published.SCOPE BOUNDARY
The release workflow's gate, plus the suite hygiene needed to make flipping it safe. Not PR-time CI, which is its own concern. Do not just flip the field — see the caveat.
GOALS
steps.test.conclusion→steps.test.outcome, so the gate is real. (Landed onrelease/2.0via Fix dead release test gate: use outcome, not conclusion #306.)main, not onlyrelease/2.0.CAVEATS AND KNOWN RISKS
continue-on-errormust stay. Removing it fails the job immediately and the tag-deletion step never runs — the opposite of the intent. The two settings are a pair, and Fix dead release test gate: use outcome, not conclusion #306 comments them as such.DEFINITION OF DONE
workflow_dispatchdry run — demonstrated, not reasoned about.