2.1 KiB
2.1 KiB
maven-build
Action for building and validating Maven projects.
Inputs
| Input | Required | Default | Description |
|---|---|---|---|
java-version |
No | 25 |
Java version to set up for the build |
maven-version |
No | 3.9.15 |
Maven version to set up for the build |
distribution |
No | temurin |
JDK distribution to use |
phase |
No | verify |
Build phase to execute: verify runs code-quality checks; deploy builds and pushes a Docker image |
verify-goals |
No | spotless:check checkstyle:check test |
Space-separated Maven goals to run during the verify phase |
maven-profile |
No | test |
Maven profile to activate during deploy |
service-dir |
No | . |
Working directory for the Maven build |
maven-settings |
Yes | — | Secret containing the settings.xml content used for repository authentication |
extra-args |
No | "" |
Additional Maven arguments appended to the build command |
Outputs
| Output | Description |
|---|---|
image-tag |
The Docker image tag used during the deploy phase |
Usage
Verify (code quality + tests)
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/maven-build@maven-build-v1
with:
maven-settings: ${{ secrets.MAVEN_SETTINGS }}
Deploy (build and push Docker image)
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/maven-build@maven-build-v1
with:
phase: deploy
maven-profile: prod
maven-settings: ${{ secrets.MAVEN_SETTINGS }}
Multi-module project
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/maven-build@maven-build-v1
with:
service-dir: my-service
maven-settings: ${{ secrets.MAVEN_SETTINGS }}
Notes
- The
maven-settingsinput is written to a temporary file (/tmp/maven-settings.xml) and removed after the build, even on failure. - During the
deployphase, the image tag is generated as<FORGEJO_SHA>-<unix-timestamp>and exposed via theimage-tagoutput. - Third-party actions used internally are pinned to exact commit SHAs to prevent supply chain attacks.