From eb81c74b3143fbacbd9134bb79e25027f38bcca8 Mon Sep 17 00:00:00 2001
From: CrazyMax <crazy-max@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:52:55 +0100
Subject: [PATCH] ci: split validate and test workflow

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
---
 .github/workflows/test.yml     |  8 -------
 .github/workflows/validate.yml | 41 ++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 8 deletions(-)
 create mode 100644 .github/workflows/validate.yml

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index e6ad7fa..80a52e3 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -6,9 +6,6 @@ on:
       - 'master'
       - 'releases/v*'
   pull_request:
-    branches:
-      - 'master'
-      - 'releases/v*'
 
 jobs:
   test:
@@ -17,11 +14,6 @@ jobs:
       -
         name: Checkout
         uses: actions/checkout@v3
-      -
-        name: Validate
-        uses: docker/bake-action@v2
-        with:
-          targets: validate
       -
         name: Test
         uses: docker/bake-action@v2
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
new file mode 100644
index 0000000..33fc0db
--- /dev/null
+++ b/.github/workflows/validate.yml
@@ -0,0 +1,41 @@
+name: validate
+
+on:
+  push:
+    branches:
+      - 'master'
+      - 'releases/v*'
+  pull_request:
+
+jobs:
+  prepare:
+    runs-on: ubuntu-latest
+    outputs:
+      targets: ${{ steps.targets.outputs.matrix }}
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v3
+      -
+        name: Targets matrix
+        id: targets
+        run: |
+          echo "matrix=$(docker buildx bake validate --print | jq -cr '.group.validate.targets')" >> $GITHUB_OUTPUT
+
+  validate:
+    runs-on: ubuntu-latest
+    needs:
+      - prepare
+    strategy:
+      fail-fast: false
+      matrix:
+        target: ${{ fromJson(needs.prepare.outputs.targets) }}
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v3
+      -
+        name: Validate
+        uses: docker/bake-action@v2
+        with:
+          targets: ${{ matrix.target }}