This action sets up Maven environments for use in GitHub Actions by:
- create maven settings.xml
- set
interactiveMode
to false - useful in CI system - after job finish generated settings.xml will be removed to prevent cache or left sensitive data on build system
- add server to servers with id=github, username=$GITHUB_ACTOR and password=$GITHUB_TOKEN
- 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 to use 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.
You can try our action Setup Maven Action for completely maven environment setup.
See action.yml
steps:
- uses: s4u/[email protected]
steps:
- uses: s4u/[email protected]
with:
servers: '[{"id": "serverId", "username": "username", "password": "password"}]'
Also you can use path
argument if your settings.xml is stored in different location.
All server
attributes may be specified:
id
(required)username
password
privateKey
passphrase
filePermissions
directoryPermissions
configuration
Please refer to the servers documentation for more information.
steps:
- uses: s4u/[email protected]
with:
servers: |
[{
"id": "serverId",
"configuration": {
"item1": "value1",
"item2": {
"item21": "value21",
"item22": "value22"
}
}
}]
result will be:
<server>
<id>serverId</id>
<configuration>
<item1>value1</item1>
<item2>
<item21>value21</item21>
<item22>value22</item22>
</item1>
</configuration>
</server></servers>
steps:
- uses: s4u/[email protected]
with:
mirrors: '[{"id": "mirrorId", "name": "mirrorName", "mirrorOf": "mirrorOf", "url": "mirrorUrl"}]'
step:
- uses: s4u/[email protected]
with:
proxies: '[{"id": "proxyId", "active": "isActive", "protocol": "proxyProtocol", "host": "proxyHost", "port": "proxyPort", "nonProxyHosts": "nonProxyHost"}]'
steps:
- uses: s4u/[email protected]
with:
properties: '[{"propertyName1": "propertyValue1"}, {"propertyName2": "propertyValue2"}]'
settings.xml
with https://oss.sonatype.org/content/repositories/snapshots in repository list
steps:
- uses: s4u/[email protected]
with:
sonatypeSnapshots: true
settings.xml
with https://repository.apache.org/snapshots/ in repository list
steps:
- uses: s4u/[email protected]
with:
apacheSnapshots: true
steps:
- uses: s4u/[email protected]
with:
override: false
steps:
- uses: s4u/[email protected]
with:
githubServer: false
settings.xml
with special server item configuration for oracle repository Oracle Maven Repository
steps:
- uses: s4u/[email protected]
with:
oracleServers: '[{"id": "serverId", "username": "username", "password": "password"}]'
settings.xml
with Oracle Maven Repository
steps:
- uses: s4u/[email protected]
with:
oracleRepo: true
steps:
- uses: s4u/[email protected]
with:
repositories: '[{"id":"repoId","name":"repoName","url":"url","snapshots":{"enabled":true}}]'
It is also possible pass in Github Secrets e.g.
steps:
- uses: s4u/[email protected]
with:
servers: |
[{
"id": "sonatype-nexus-snapshots",
"username": "${{ secrets.SONATYPE_USERNAME }}",
"password": "${{ secrets.SONATYPE_PASSWORD }}"
}]
Note: secrets are not passed in if the workflow is triggered from a forked repository. See here for further information. This can be avoided by using if
triggers on the job e.g. if: github.event_name == 'push'
.
maven-settings-action should be put at the latest position before maven run in order to avoid override setting.xml
by another action
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: maven-${{ hashFiles('**/pom.xml') }}
restore-keys: maven-
- uses: actions/setup-java@v1
with:
java-version: 8
- uses: s4u/[email protected]
- run: mvn verify
The scripts and documentation in this project are released under the MIT License.