Commit ef407cb
Guillaume Lessard
fix(release): publish job was eligible on a publish=false dispatch
Near miss, and the worst class of bug in this pipeline.
The gate read `|| inputs.publish`. A workflow_dispatch input arrives as a
string, and every non-empty string is truthy in a GitHub expression, so
`-f publish=false` evaluated TRUE and the publish job was live on runs that
explicitly asked not to publish. Only the wheel builds failing kept 0.7.0 off
PyPI - the dry runs were not dry.
It surfaced because the job reported `cancelled` rather than `skipped` when the
run was cancelled. That distinction is the tell: GitHub reports `skipped` for a
job its `if` rejected, and `cancelled` for one that was live and waiting on
`needs`. Verified: conclusion=cancelled on run 30683646801.
Compare against the literal string `'true'` instead. PyPI refuses re-uploads of
a version, so an accidental publish cannot be undone - this gate has to be exact
rather than approximately right.1 parent 2b71376 commit ef407cb
1 file changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
393 | 403 | | |
394 | 404 | | |
395 | 405 | | |
396 | | - | |
| 406 | + | |
397 | 407 | | |
398 | 408 | | |
399 | 409 | | |
| |||
0 commit comments