This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch mvn4
in repository https://gitbox.apache.org/repos/asf/maven-gh-actions-shared.git

commit 313b8a92370b9d1c4dd2dbc8695b273ff42f9f4a
Author: Slawomir Jaranowski <s.jaranow...@gmail.com>
AuthorDate: Sat Jun 1 16:40:27 2024 +0200

    Add support for Maven 4
---
 .github/workflows/maven-verify-test.yml |  7 ++++
 .github/workflows/maven-verify.yml      | 65 +++++++++++++++++++++++++++++++--
 2 files changed, 68 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/maven-verify-test.yml 
b/.github/workflows/maven-verify-test.yml
index 3cd11dd..c28a794 100644
--- a/.github/workflows/maven-verify-test.yml
+++ b/.github/workflows/maven-verify-test.yml
@@ -36,3 +36,10 @@ jobs:
       verify-goal: clean install
       verify-fail-fast: false
       maven-matrix: '[ "3.9.6", "3.8.8", "3.6.3" ]'
+
+  verify-3:
+    name: Verify 3
+    uses: ./.github/workflows/maven-verify.yml
+    needs: verify-2
+    with:
+      maven4-enabled: true
diff --git a/.github/workflows/maven-verify.yml 
b/.github/workflows/maven-verify.yml
index b8a2cca..3cceca0 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -50,6 +50,18 @@ on:
         default: '[ "3.6.3", "3.9.7" ]'
         type: string
 
+      maven4-verison:
+        description: The Maven 4.x version matrix
+        required: false
+        default: '4.0.0-beta-3'
+        type: string
+
+      maven4-enabled:
+        description: Determinate if use Maven 4 in build matrix
+        required: false
+        default: false
+        type: boolean
+
       matrix-include:
         description: include for matrix as json
         required: false
@@ -227,12 +239,57 @@ jobs:
       - name: Clean Ensuring no file handle remains open on windows
         run: ./mvnw clean --errors --batch-mode --show-version
 
-  verify:
+  setup-matrix:
+    runs-on: "ubuntu-latest"
     needs: fail-fast-build
+    if: always() && ( !inputs.ff-run || needs.fail-fast-build.result == 
'success' )
+    outputs:
+      maven: ${{ steps.maven.outputs.matrix }}
+      exclude: ${{ steps.exclude.outputs.matrix }}
+
+    steps:
+      - id: maven
+        run: |
+          {
+            echo 'matrix<<EOF'
+            if [ "${{ inputs.maven4-enabled }}" = "true" ]; then
+              echo '${{ inputs.maven-matrix }}' | jq -c '. + ["${{ 
inputs.maven4-verison }}"]'
+            else
+              echo '${{ inputs.maven-matrix }}'            
+            fi
+            echo "EOF"
+          } >> "$GITHUB_OUTPUT"
+          
+          cat "$GITHUB_OUTPUT"
+
+      - id: exclude
+        run: |
+          {
+            echo "matrix<<EOF"
+            if [ "${{ inputs.maven4-enabled }}" = "true" ]; then
+              echo '${{ inputs.matrix-exclude }}' | jq -c '. + [{"jdk": "8", 
"maven": "${{ inputs.maven4-verison }}"}]'
+            else
+              echo '${{ inputs.matrix-exclude }}'            
+            fi
+            echo "EOF"
+          } >> "$GITHUB_OUTPUT"
+
+          cat "$GITHUB_OUTPUT"
+
+
+  test-setup:
+    needs: setup-matrix
+    runs-on: "ubuntu-latest"
+
+    steps:
+      - run: |
+          echo '${{ needs.setup-matrix.maven }}'
+          echo '${{ needs.setup-matrix.exclude }}'
+  verify:
+    needs: setup-matrix
     name: ${{ matrix.os }} jdk-${{ matrix.jdk }}-${{ matrix.distribution }} 
${{ matrix.maven }}
     timeout-minutes: ${{ inputs.timeout-minutes }}
     runs-on: ${{ matrix.os }}
-    if: always() && ( !inputs.ff-run || needs.fail-fast-build.result == 
'success' )
 
     strategy:
       fail-fast: ${{ inputs.verify-fail-fast }}
@@ -240,9 +297,9 @@ jobs:
         os: ${{ fromJSON( inputs.os-matrix ) }}
         jdk: ${{ fromJSON( inputs.jdk-matrix ) }}
         distribution: ${{ fromJSON( inputs.jdk-distribution-matrix ) }}
-        maven: ${{ fromJSON( inputs.maven-matrix ) }}
+        maven: ${{ fromJSON( needs.setup-matrix.maven ) }}
         include: ${{ fromJSON( inputs.matrix-include ) }}
-        exclude: ${{ fromJSON( inputs.matrix-exclude ) }}
+        exclude: ${{ fromJSON( needs.setup-matrix.exclude ) }}
       max-parallel: ${{ inputs.max-parallel }}
 
     steps:

Reply via email to