1 files changed, 12 insertions, 9 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 0a62c62d02..239553ae13 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -367,13 +367,16 @@ jobs:
- name: Set build result
env:
NEEDS_CONTEXT: ${{ toJSON(needs) }}
- # the `jq` incantation dumps out a series of "<job> <result>" lines
+ # the `jq` incantation dumps out a series of "<job> <result>" lines.
+ # we set it to an intermediate variable to avoid a pipe, which makes it
+ # hard to set $rc.
run: |
- set -o pipefail
- jq -r 'to_entries[] | [.key,.value.result] | join(" ")' \
- <<< $NEEDS_CONTEXT |
- while read job result; do
- if [ "$result" != "success" ]; then
- echo "::set-failed ::Job $job returned $result"
- fi
- done
+ rc=0
+ results=$(jq -r 'to_entries[] | [.key,.value.result] | join(" ")' <<< $NEEDS_CONTEXT)
+ while read job result ; do
+ if [ "$result" != "success" ]; then
+ echo "::set-failed ::Job $job returned $result"
+ rc=1
+ fi
+ done <<< $results
+ exit $rc
|