This is composite action which help to prepare GitHub Actions environment for Maven build by calling:
❗ You should not include above actions in your configuration - in other case those will be called twice. ❗
For default values you only need:
steps:
- name: Setup Maven Action
uses: s4u/setup-maven-action@< version >
- run: mvn -V ...
params | destination | default |
---|---|---|
checkout-fetch-depth | fetch-depth | |
checkout-path | path | |
checkout-ref | ref | |
checkout-repository | repository | ${{ github.repository }} |
checkout-token | token | ${{ github.token }} |
checkout-persist-credentials | persist-credentials | false |
params | destination | default |
---|---|---|
java-version | java-version | 17 |
java-distribution | distribution | zulu |
A cache action is configured as:
- uses: actions/cache
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 }}-
So we can use for action:
params | description |
---|---|
cache-enabled | enable cache. Default true |
cache-path | default cache path for Maven with value ~/.m2/repository |
cache-path-add | additional value for cache path |
cache-prefix | prefix value for key and restore-keys cache params |
params | destination | default |
---|---|---|
maven-version | maven-version | 3.9.6 |
params | destination |
---|---|
settings-servers | servers |
settings-mirrors | mirrors |
settings-properties | properties |
settings-sonatypeSnapshots | sonatypeSnapshots |
settings-proxies | proxies |
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
maven: [ '3.8.8', '3.9.6' ]
name: Maven ${{ matrix.maven }} sample
steps:
- name: Setup Maven Action
uses: s4u/setup-maven-action@< version >
with:
java-version: 8
maven-version: ${{ matrix.maven }}
- run: mvn -V ...
- Contributions are welcome!
- Give ⭐ - if you want to encourage me to work on a project
- Don't hesitate to create issues for new features you dream of or if you suspect some bug
This project uses Semantic Versioning. We recommended using the latest and specific release version.
In order to keep your project dependencies up to date you can watch this repository (Releases only) or use automatic tools like Dependabot.
The scripts and documentation in this project are released under the MIT License