fix(ci): stop the skipped ci-gate from cascading past the release job

This commit is contained in:
Michel de Graaf
2026-07-26 12:54:40 +02:00
parent 8dc140eea2
commit 1eef886b88
+10 -7
View File
@@ -132,15 +132,17 @@ jobs:
# existing tag when dispatched manually with `tag` (recovering a target that # 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). # 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 # Gated on the resolved tag, which `Resolve tag` has already folded both paths
# `inputs` context reads as empty in a job-level `if` (it only resolves inside # into and validated, so this is the single place deciding whether there is
# a step), which silently skipped every manual rebuild. `Resolve tag` already # anything to build. `!cancelled()` is load-bearing: on a manual dispatch
# folds both paths into one validated value, so this is also the single place # ci-gate is skipped, and that skip propagates down the whole needs graph —
# that decides whether there is anything to build. # past `release`, which only survives it via its own always() — so without a
# status function here every manual rebuild was skipped no matter what the
# rest of the condition said.
binaries: binaries:
name: ${{ matrix.target }} name: ${{ matrix.target }}
needs: release needs: release
if: needs.release.outputs.tag != '' if: ${{ !cancelled() && needs.release.outputs.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.
@@ -198,7 +200,8 @@ jobs:
# dispatch fails (expired token, tap outage) rather than as the mechanism. # dispatch fails (expired token, tap outage) rather than as the mechanism.
tap: tap:
name: Update Homebrew tap name: Update Homebrew tap
needs: [release, binaries] needs: binaries
if: ${{ !cancelled() && needs.binaries.result == 'success' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Dispatch the tap's formula workflow - name: Dispatch the tap's formula workflow