From 8dc140eea2776880852447473ba183c76799df89 Mon Sep 17 00:00:00 2001 From: Michel de Graaf Date: Sun, 26 Jul 2026 12:51:49 +0200 Subject: [PATCH] fix(ci): gate the binaries job on the resolved tag so manual rebuilds run --- .github/workflows/release.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e8dc6e8..72d4284 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -95,7 +95,6 @@ jobs: group: release-${{ github.ref }} cancel-in-progress: false outputs: - created: ${{ steps.release-plz.outputs.releases_created }} tag: ${{ steps.tag.outputs.tag }} steps: - uses: actions/checkout@v4 @@ -132,10 +131,16 @@ jobs: # Attaches downloadable binaries to the release GitHub just created, or to an # existing tag when dispatched manually with `tag` (recovering a target that # failed to upload needs a re-run of *this* file, not the old one). + # + # Gated on the resolved tag rather than on `created`/`inputs.tag`: the + # `inputs` context reads as empty in a job-level `if` (it only resolves inside + # a step), which silently skipped every manual rebuild. `Resolve tag` already + # folds both paths into one validated value, so this is also the single place + # that decides whether there is anything to build. binaries: name: ${{ matrix.target }} needs: release - if: needs.release.outputs.created == 'true' || inputs.tag != '' + if: needs.release.outputs.tag != '' runs-on: ${{ matrix.os }} strategy: # One flaky cross-linker must not hold back the five targets that built.