This action executes a JReleaser workflow.
name: release
on:
workflow_dispatch:
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Configure build steps as you'd normally do
- name: Setup Java
uses: actions/setup-java@v5
with:
java-version: 21
distribution: 'zulu'
cache: maven
# Build the artifacts
- name: Build
run: ./mvnw -B -ntp verify
# Create a release
- name: Run JReleaser
uses: jreleaser/release-action@v2
env:
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Persist logs
- name: JReleaser release output
if: always()
uses: actions/upload-artifact@v4
with:
name: jreleaser-release
path: |
out/jreleaser/trace.log
out/jreleaser/output.properties|
Warning
|
Note the fetch-depth: 0 option on the Checkout workflow step. It is required for JReleaser to work properly.
Without that, JReleaser might fail or behave incorrectly.
|
The last step executes a full-release with the default jreleaser.yml configuration that’s expected to be located at
the root of the repository.
|
Important
|
This action requires Java 11+ to download and execute JReleaser. The action will setup a suitable Java runtime
automatically. If you would like to use a different Java version/distribution then set the value of setup-java to false
and make sure you have a previous step with actions/setup-java setup as needed.
|
Following inputs can be used as step.with keys
| Name | Type | Default | Description |
|---|---|---|---|
version |
String |
latest |
The JReleaser version to use. |
arguments |
String |
full-release |
The JReleaser command to run. |
working-directory |
String |
${{ github.workspace }} |
The directory to change into. |
setup-java |
boolean |
true |
Automatically setup a Java runtime. |
java-opts |
boolean |
Additional JVM parameters for running JReleaser |
Following environment variables can be used as step.env keys
| Name | Description |
|---|---|
JRELEASER_GITHUB_TOKEN |
GITHUB_TOKEN
as provided by |
The default GITHUB_TOKEN from secrets is limited
to the repository that contains your workflow.
Pushing to other repositories such as Homebrew tap requires additional permissions, you must create a custom
Personal Access Token with
repo permissions and add it as a secret in the repository.
If you create a secret named GH_PAT, the step will look like this
- name: Run JReleaser
uses: jreleaser/release-action@v2
env:
JRELEASER_GITHUB_TOKEN: ${{ secrets.GH_PAT }}If you’d rather have separate tokens for each additional repository and keep the original GITHUB_TOKEN intact then
you may apply the GH_PAT token as follows
- name: Run JReleaser
uses: jreleaser/release-action@v2
env:
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JRELEASER_HOMEBREW_GITHUB_TOKEN: ${{ secrets.GH_PAT }}Additional environment variables may be needed depending on your specific setup, such as those needed for signing files with GPG or announcing a release via Twitter. Review the docs at https://jreleaser.org to find more about these variables and how to set them up.