diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2583d2e269a..d49856a8246 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,6 +86,9 @@ jobs: steps: - name: Fail if any of the dependent jobs failed # Don't fail if the workflow is being skipped. + # Check skip_workflow on all declared dependencies. Workflows without + # skip_workflow outputs (e.g., tests, build_cli_archives) evaluate to + # empty string, so the check still works ('!= true' is true for empty). # # For others 'skipped' can be when a transitive dependency fails and the dependent job gets # 'skipped'. For example, one of setup_* jobs failing and the Integration test jobs getting @@ -93,6 +96,8 @@ jobs: if: >- ${{ always() && needs.prepare_for_ci.outputs.skip_workflow != 'true' && + needs.tests.outputs.skip_workflow != 'true' && + needs.build_cli_archives.outputs.skip_workflow != 'true' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')) }}