From 9bcce4270c08cc5198286a19c78310bcda27b845 Mon Sep 17 00:00:00 2001 From: Joseph Mearman Date: Fri, 11 Sep 2026 23:21:23 +0100 Subject: [PATCH] fix(ci): stop release-core's skip propagating from its dry-run sibling release-core-dry-run runs only on pull_request and is deliberately skipped on a push -- but required-checks' own needs list includes it, and GitHub Actions propagates a skipped dependency's status transitively through the needs graph by default, skipping release-core too even though required-checks itself succeeds. Confirmed on the first real push after #70 merged: required-checks reported success, but release-core still skipped outright with zero steps run, so it never even reached the pnpm-setup fix that same PR was meant to ship. Checking needs.required-checks.result explicitly, rather than relying on the implicit success() check, evaluates only this job's own direct dependency instead of the whole transitive graph. --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 236e4f6..fa6169b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,7 +274,8 @@ jobs: release-core: name: Release wire-mesh-core - if: github.ref == 'refs/heads/main' && github.event_name == 'push' + # required-checks' own needs include release-core-dry-run, which is deliberately skipped on a push event (it only runs for pull_request) -- GitHub Actions propagates that skip transitively through the needs graph to this job by default even though required-checks itself succeeds, so the condition checks required-checks' own result explicitly rather than relying on implicit success() propagation. + if: ${{ !cancelled() && needs.required-checks.result == 'success' && github.ref == 'refs/heads/main' && github.event_name == 'push' }} needs: [required-checks] runs-on: ubuntu-latest permissions: