Skip to content

Complete environment configuration for Maven builds

License

Notifications You must be signed in to change notification settings

ZenvilleErasmus/setup-maven-action

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setup Maven Action

Test

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 mapping for sub actions

checkout

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

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.6

maven-settings-action

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

Testing against different Maven versions

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

  • 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

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

About

Complete environment configuration for Maven builds

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published