mirror of
http://43.153.184.91:8080/https://github.com/s4u/setup-maven-action.git
synced 2026-01-27 11:13:00 +08:00
152 lines
4.9 KiB
YAML
152 lines
4.9 KiB
YAML
name: 'Setup Maven Action'
|
|
description: 'Complete environment configuration for Maven builds'
|
|
|
|
branding:
|
|
icon: 'settings'
|
|
color: 'green'
|
|
|
|
inputs:
|
|
|
|
# checkout
|
|
checkout-fetch-depth:
|
|
description: 'Number of commits to fetch'
|
|
required: false
|
|
|
|
checkout-path:
|
|
description: 'Relative path under $GITHUB_WORKSPACE to place the repository'
|
|
required: false
|
|
|
|
checkout-persist-credentials:
|
|
description: 'Whether to configure the token or SSH key with the local git config'
|
|
default: 'false'
|
|
required: false
|
|
|
|
checkout-ref:
|
|
description: 'The branch, tag, or SHA of the repository to clone'
|
|
required: false
|
|
|
|
checkout-repository:
|
|
description: 'The repository to checkout if not the repository that triggered the action. For use when building GitHub Apps'
|
|
required: false
|
|
default: ${{ github.repository }}
|
|
|
|
checkout-token:
|
|
description: 'Token to use for checkout if checking out a repository out of scope for GITHUB_TOKEN'
|
|
required: false
|
|
default: ${{ github.token }}
|
|
|
|
checkout-ssh-key:
|
|
description: 'SSH key used to fetch the repository. It allows to run authenticated git commands'
|
|
required: false
|
|
|
|
# java jdk params
|
|
|
|
java-version:
|
|
description: 'The Java version to set up'
|
|
default: '17'
|
|
required: true
|
|
|
|
java-distribution:
|
|
description: 'Java distribution'
|
|
default: 'zulu'
|
|
required: false
|
|
|
|
# cache
|
|
cache-enabled:
|
|
description: 'Enable cache'
|
|
default: 'true'
|
|
required: false
|
|
|
|
cache-prefix:
|
|
description: 'Cache key prefix'
|
|
required: false
|
|
|
|
cache-path:
|
|
description: 'Cache path'
|
|
default: '~/.m2/repository'
|
|
required: false
|
|
|
|
cache-path-add:
|
|
description: 'Additional item for cache path'
|
|
required: false
|
|
|
|
# maven version
|
|
maven-version:
|
|
description: 'The Maven version to set up'
|
|
default: '3.9.8'
|
|
required: false
|
|
|
|
# maven settings.xml
|
|
settings-servers:
|
|
description: 'servers definition in json array, e.g.: [{"id": "serverId", "username": "username", "password": "password"}]'
|
|
required: false
|
|
|
|
settings-mirrors:
|
|
description: 'mirrors definition in json array, e.g.: [{"id": "id", "name": "name", "mirrorOf": "mirrorOf", "url": "url"}]'
|
|
required: false
|
|
|
|
settings-properties:
|
|
description: 'json array with properties, e.g.: [{"propertyName1": "propertyValue1"}, {"propertyName2": "propertyValue2"}]'
|
|
required: false
|
|
|
|
settings-sonatypeSnapshots:
|
|
description: 'add https://oss.sonatype.org/content/repositories/snapshots to repository list - true or false'
|
|
required: false
|
|
|
|
settings-proxies:
|
|
description: 'proxies definition in json array, e.g.: [{"id": "http-proxy", "active": "true", "protocol": "http", "host": "host", "port": "port", "nonProxyHosts": "host1|host2"}]'
|
|
required: false
|
|
|
|
settings-repositories:
|
|
description: 'repository settings definition in json array, e.g.: [ { "id": "repoId","name": "repoName","url": "url","snapshots": { "enabled": true } } ]'
|
|
required: false
|
|
|
|
runs:
|
|
using: 'composite'
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
with:
|
|
fetch-depth: '${{ inputs.checkout-fetch-depth }}'
|
|
path: '${{ inputs.checkout-path }}'
|
|
persist-credentials: '${{ inputs.checkout-persist-credentials }}'
|
|
ref: '${{ inputs.checkout-ref }}'
|
|
repository: '${{ inputs.checkout-repository }}'
|
|
token: '${{ inputs.checkout-token }}'
|
|
ssh-key: '${{ inputs.checkout-ssh-key }}'
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
overwrite-settings: false
|
|
java-version: '${{ inputs.java-version }}'
|
|
distribution: '${{ inputs.java-distribution }}'
|
|
|
|
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
|
if: inputs.cache-enabled == 'true'
|
|
with:
|
|
path: |
|
|
${{ inputs.cache-path }}
|
|
${{ inputs.cache-path-add }}
|
|
key: ${{ inputs.cache-prefix }}${{ runner.os }}-jdk${{ inputs.java-version }}-${{ inputs.java-distribution }}-maven${{ inputs.maven-version }}-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: ${{ inputs.cache-prefix }}${{ runner.os }}-jdk${{ inputs.java-version }}-${{ inputs.java-distribution }}-maven${{ inputs.maven-version }}-
|
|
|
|
- name: Installed Maven version
|
|
run: echo "version=$(mvn -q -v)" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
id: current-maven
|
|
|
|
- uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
|
|
if: inputs.maven-version != steps.current-maven.outputs.version
|
|
with:
|
|
maven-version: '${{ inputs.maven-version }}'
|
|
|
|
- uses: s4u/maven-settings-action@7802f6aec16c9098b4798ad1f1d8ac75198194bd # v3.0.0
|
|
with:
|
|
servers: '${{ inputs.settings-servers }}'
|
|
mirrors: '${{ inputs.settings-mirrors }}'
|
|
properties: '${{ inputs.settings-properties }}'
|
|
sonatypeSnapshots: '${{ inputs.settings-sonatypeSnapshots }}'
|
|
proxies: '${{ inputs.settings-proxies }}'
|
|
repositories: '${{ inputs.settings-repositories }}'
|