This action sets up Maven environments for use in GitHub Actions by:
- create maven settings.xml
- set
interactiveModeto 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)usernamepasswordprivateKeypassphrasefilePermissionsdirectoryPermissionsconfiguration
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: truesettings.xml with https://repository.apache.org/snapshots/ in repository list
steps:
- uses: s4u/[email protected]
with:
apacheSnapshots: truesteps:
- uses: s4u/[email protected]
with:
override: falsesteps:
- uses: s4u/[email protected]
with:
githubServer: falsesettings.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: trueIt 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 verifyThe scripts and documentation in this project are released under the MIT License.