From: Alexis Romero Date: Thu, 16 Feb 2023 05:54:23 +0000 (+0100) Subject: gh actions: simplified collector job in build-and-test-all.yml X-Git-Tag: auth-4.7.4~8^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b433fbc192c6ec3bbe5aab6c73d71d20f637d2e;p=thirdparty%2Fpdns.git gh actions: simplified collector job in build-and-test-all.yml --- diff --git a/.github/workflows/build-and-test-all.yml b/.github/workflows/build-and-test-all.yml index 60542c56fa..9a176de86d 100644 --- a/.github/workflows/build-and-test-all.yml +++ b/.github/workflows/build-and-test-all.yml @@ -248,19 +248,22 @@ jobs: - test-auth-api - test-auth-backend - test-ixfrdist + if: success() || failure() runs-on: ubuntu-20.04 steps: + - name: Install jq and yq + run: "sudo snap install jq yq" + - name: Fail job if any of the previous jobs failed + run: "for i in `echo '${{ toJSON(needs) }}' | jq '.[].result' | tr -d '\"'`; do if [[ $i == 'failure' ]]; then echo '${{ toJSON(needs) }}'; exit 1; fi; done;" - uses: actions/checkout@v2.3.4 with: fetch-depth: 5 submodules: recursive - - name: Install yq - run: sudo wget https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq - - name: Get full list of jobs for this workflow - run: yq e '.jobs | keys' .github/workflows/build-and-test-all.yml | grep -v '^- collect' | sort | tee /tmp/workflow-jobs-list.yml - - name: Get list of jobs the collect job depends on - run: yq e '.jobs.collect.needs | ... comments=""' .github/workflows/build-and-test-all.yml | sort | tee /tmp/workflow-collect-dependencies.yml - - name: Diff them - run: diff -u /tmp/workflow-jobs-list.yml /tmp/workflow-collect-dependencies.yml + - name: Get list of jobs in the workflow + run: "yq e '.jobs | keys' .github/workflows/build-and-test-all.yml | awk '{print $2}' | grep -v collect | sort | tee /tmp/workflow-jobs-list.yml" + - name: Get list of prerequisite jobs + run: "echo '${{ toJSON(needs) }}' | jq 'keys | .[]' | tr -d '\"' | sort | tee /tmp/workflow-needs-list.yml" + - name: Fail if there is a job missing on the needs list + run: "if ! diff -q /tmp/workflow-jobs-list.yml /tmp/workflow-needs-list.yml; then exit 1; fi" # FIXME: if we can make upload/download-artifact fasts, running unit tests outside of build can let regression tests start earlier