fix(ci): make the manual tag input actually reach the recovery jobs

The `tag` dispatch input exists so binaries and the homebrew formula can be
rebuilt for a tag that already shipped. It never worked: the job-level
conditions read `inputs.tag`, which is empty in a job `if` on
workflow_dispatch, and `null != ''` coerces to false, so both jobs silently
skipped. That is why v7.0.0 reached crates.io with an empty homebrew tap.
The step-level condition used the same expression and did fire, which is what
made the two disagree. `github.event.inputs.tag` is populated in both places.
This commit is contained in:
Michel de Graaf
2026-07-25 03:43:34 +02:00
parent fe079b4c94
commit fce4b765b7
+5 -2
View File
@@ -135,7 +135,10 @@ jobs:
binaries: binaries:
name: ${{ matrix.target }} name: ${{ matrix.target }}
needs: release needs: release
if: needs.release.outputs.created == 'true' || inputs.tag != '' # `github.event.inputs`, not `inputs`: the latter is empty in a job-level
# condition on workflow_dispatch, and `null != ''` coerces to false, which
# silently skipped this job on every manual recovery run.
if: needs.release.outputs.created == 'true' || github.event.inputs.tag != ''
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
# One flaky cross-linker must not hold back the five targets that built. # One flaky cross-linker must not hold back the five targets that built.
@@ -192,7 +195,7 @@ jobs:
homebrew: homebrew:
name: Homebrew tap name: Homebrew tap
needs: [release, binaries] needs: [release, binaries]
if: needs.release.outputs.created == 'true' || inputs.tag != '' if: needs.release.outputs.created == 'true' || github.event.inputs.tag != ''
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4