From 0211f18d65b20c9bd77e64f296f8790f4267cf28 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Date: Mon, 7 Mar 2022 12:24:06 +0000
Subject: [PATCH] Switch the `tests-done` job to an Action (#12161)

I've factored it out for easier use in other workflows.
---
 .github/workflows/tests.yml | 30 +++++++++---------------------
 changelog.d/12161.misc      |  1 +
 2 files changed, 10 insertions(+), 21 deletions(-)
 create mode 100644 changelog.d/12161.misc

diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 3bce95b0e0..613a773775 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -388,34 +388,22 @@ jobs:
   tests-done:
     if: ${{ always() }}
     needs:
+      - check-sampleconfig
       - lint
       - lint-crlf
       - lint-newsfile
       - trial
       - trial-olddeps
       - sytest
+      - export-data
       - portdb
       - complement
     runs-on: ubuntu-latest
     steps:
-      - name: Set build result
-        env:
-          NEEDS_CONTEXT: ${{ toJSON(needs) }}
-        # 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: |
-          rc=0
-          results=$(jq -r 'to_entries[] | [.key,.value.result] | join(" ")' <<< $NEEDS_CONTEXT)
-          while read job result ; do
-              # The newsfile lint may be skipped on non PR builds
-              if [ $result == "skipped" ] && [ $job == "lint-newsfile" ]; then
-                continue
-              fi
-
-              if [ "$result" != "success" ]; then
-                  echo "::set-failed ::Job $job returned $result"
-                  rc=1
-              fi
-          done <<< $results
-          exit $rc
+      - uses: matrix-org/done-action@v2
+        with:
+          needs: ${{ toJSON(needs) }}
+
+          # The newsfile lint may be skipped on non PR builds
+          skippable:
+            lint-newsfile
diff --git a/changelog.d/12161.misc b/changelog.d/12161.misc
new file mode 100644
index 0000000000..43eff08d46
--- /dev/null
+++ b/changelog.d/12161.misc
@@ -0,0 +1 @@
+Use a prebuilt Action for the `tests-done` CI job.
-- 
GitLab