Skip to content

Commit d99a734

Browse files
bugerclaude
andauthored
fix: prevent dep-guard from skipping downstream jobs on push (#8076)
## Summary Remove goreleaser's dependency on dep-guard to prevent GitHub Actions' transitive skip propagation from skipping all test jobs on push/tag events. dep-guard still gates PR merges via the aggregator job. ## Root cause dep-guard has `if: github.event_name == 'pull_request'` → skipped on push → goreleaser depends on it → all downstream jobs transitively skipped. ## Test plan - [ ] Push to release branch triggers all test jobs (not skipped) - [ ] PR still runs dep-guard and gates merge via aggregator 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 00ce563 commit d99a734

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

.github/workflows/release.yml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,11 @@ jobs:
374374
!dist/*PAYG*.rpm
375375
!dist/*fips*.rpm
376376
resolve-dashboard-image:
377-
if: github.event.pull_request.draft == false
378377
needs: goreleaser
378+
if: |
379+
!cancelled() &&
380+
needs.goreleaser.result == 'success' &&
381+
github.event.pull_request.draft == false
379382
runs-on: ${{ vars.DEFAULT_RUNNER }}
380383
permissions:
381384
id-token: write
@@ -576,8 +579,11 @@ jobs:
576579
echo "✅ Resolution complete"
577580
echo "=================================="
578581
build-dashboard-image:
579-
if: needs.resolve-dashboard-image.outputs.needs_build == 'true'
580582
needs: resolve-dashboard-image
583+
if: |
584+
!cancelled() &&
585+
needs.resolve-dashboard-image.result == 'success' &&
586+
needs.resolve-dashboard-image.outputs.needs_build == 'true'
581587
runs-on: ${{ vars.DEFAULT_RUNNER }}
582588
permissions:
583589
id-token: write
@@ -756,9 +762,12 @@ jobs:
756762
echo "image=$IMAGE" >> $GITHUB_OUTPUT
757763
echo "✅ Dashboard image built and pushed: $IMAGE"
758764
test-controller-api:
759-
if: github.event.pull_request.draft == false
760765
needs:
761766
- goreleaser
767+
if: |
768+
!cancelled() &&
769+
needs.goreleaser.result == 'success' &&
770+
github.event.pull_request.draft == false
762771
runs-on: ${{ vars.DEFAULT_RUNNER }}
763772
outputs:
764773
envfiles: ${{ steps.params.outputs.envfiles }}
@@ -778,9 +787,9 @@ jobs:
778787
- goreleaser
779788
- resolve-dashboard-image
780789
- build-dashboard-image
781-
# build-dashboard-image may be skipped, so use if: always() to run regardless
790+
# build-dashboard-image may be skipped, so use !cancelled() to run regardless
782791
if: |
783-
always() &&
792+
!cancelled() &&
784793
needs.test-controller-api.result == 'success' &&
785794
needs.goreleaser.result == 'success' &&
786795
needs.resolve-dashboard-image.result == 'success' &&
@@ -856,7 +865,7 @@ jobs:
856865
name: Aggregated CI Status
857866
runs-on: ${{ vars.DEFAULT_RUNNER }}
858867
# Dynamically determine which jobs to depend on based on repository configuration
859-
needs: [goreleaser, api-tests]
868+
needs: [goreleaser, api-tests, dep-guard]
860869
if: ${{ always() && github.event_name == 'pull_request' }}
861870
steps:
862871
- name: Aggregate results
@@ -883,9 +892,12 @@ jobs:
883892
884893
echo "✅ All required jobs succeeded"
885894
test-controller-distros:
886-
if: github.event.pull_request.draft == false
887895
needs:
888896
- goreleaser
897+
if: |
898+
!cancelled() &&
899+
needs.goreleaser.result == 'success' &&
900+
github.event.pull_request.draft == false
889901
runs-on: ${{ vars.DEFAULT_RUNNER }}
890902
outputs:
891903
deb: ${{ steps.params.outputs.deb }}
@@ -910,6 +922,9 @@ jobs:
910922
runs-on: ${{ vars.DEFAULT_RUNNER }}
911923
needs:
912924
- test-controller-distros
925+
if: |
926+
!cancelled() &&
927+
needs.test-controller-distros.result == 'success'
913928
strategy:
914929
fail-fast: true
915930
matrix:
@@ -969,6 +984,9 @@ jobs:
969984
runs-on: ${{ vars.DEFAULT_RUNNER }}
970985
needs:
971986
- test-controller-distros
987+
if: |
988+
!cancelled() &&
989+
needs.test-controller-distros.result == 'success'
972990
strategy:
973991
fail-fast: true
974992
matrix:
@@ -1022,6 +1040,9 @@ jobs:
10221040
release-tests:
10231041
needs:
10241042
- goreleaser
1043+
if: |
1044+
!cancelled() &&
1045+
needs.goreleaser.result == 'success'
10251046
permissions:
10261047
id-token: write # This is required for requesting the JWT
10271048
contents: read # This is required for actions/checkout
@@ -1030,6 +1051,9 @@ jobs:
10301051
secrets: inherit
10311052
sbom:
10321053
needs: goreleaser
1054+
if: |
1055+
!cancelled() &&
1056+
needs.goreleaser.result == 'success'
10331057
uses: TykTechnologies/github-actions/.github/workflows/sbom.yaml@42304edda365365e0a887cf018d8edc34b960b82 # main
10341058
secrets:
10351059
DEPDASH_URL: ${{ secrets.DEPDASH_URL }}

0 commit comments

Comments
 (0)