Skip to content

Commit

Permalink
Add support for Maven 4
Browse files Browse the repository at this point in the history
  • Loading branch information
slawekjaranowski committed Jun 1, 2024
1 parent dbe4e21 commit 6f171a6
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 5 deletions.
12 changes: 11 additions & 1 deletion .github/workflows/maven-verify-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,14 @@ jobs:
ff-jdk: '21'
verify-goal: clean install
verify-fail-fast: false
maven-matrix: '[ "3.9.6", "3.8.8", "3.6.3" ]'
maven-matrix: '[ "3.9.7", "3.8.8", "3.6.3" ]'

verify-3:
name: Verify 3
uses: ./.github/workflows/maven-verify.yml
needs: verify-2
with:
maven4-enabled: true
ff-site-run: false
ff-goal: verify
verify-goal: verify
60 changes: 56 additions & 4 deletions .github/workflows/maven-verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -227,22 +239,62 @@ jobs:
- name: Clean Ensuring no file handle remains open on windows
run: ./mvnw clean --errors --batch-mode --show-version

verify:
# prepare matrix data for verify step
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
name: setup Maven matrix
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
name: setup exclude matrix
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"
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 }}
matrix:
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.outputs.maven ) }}
include: ${{ fromJSON( inputs.matrix-include ) }}
exclude: ${{ fromJSON( inputs.matrix-exclude ) }}
exclude: ${{ fromJSON( needs.setup-matrix.outputs.exclude ) }}
max-parallel: ${{ inputs.max-parallel }}

steps:
Expand Down

0 comments on commit 6f171a6

Please sign in to comment.