s4u / setup-maven-action

Complete environment configuration for Maven builds
MIT License
59 stars 24 forks source link
actions github-actions hacktoberfest java maven

Setup Maven Action

Test

This is composite action which help to prepare GitHub Actions environment for Maven build by calling:

:exclamation: You should not include above actions in your configuration - in other case those will be called twice. :exclamation:

For default values you only need:

    steps:

      - name: Setup Maven Action
        uses: s4u/setup-maven-action@< version >

      - run: mvn -V ...

Params mapping for sub actions

checkout

params destination default
checkout-enabled enabled true
checkout-fetch-depth fetch-depth
checkout-submodules submodules
checkout-path path
checkout-ref ref
checkout-repository repository ${{ github.repository }}
checkout-token token ${{ github.token }}
checkout-ssh-key ssh-key
checkout-persist-credentials persist-credentials false

setup-java

params destination default
java-version java-version 17
java-distribution distribution zulu

cache

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

setup-maven

params destination default
maven-version maven-version 3.9.9

maven-settings-action

params destination
settings-servers servers
settings-mirrors mirrors
settings-properties properties
settings-sonatypeSnapshots sonatypeSnapshots
settings-proxies proxies
settings-repositories repositories

Testing against different Maven versions


jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        maven: [ '3.8.8', '3.9.8' ]

    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

Project versioning

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.

License

The scripts and documentation in this project are released under the MIT License