Codeberg
This releaser has been deprecated in v1.6.0 and will be removed in v2.0.0 . Use Gitea
instead.
|
Configure releases to https://codeberg.org.
Refer to Changelog for full options on changelog customizations.
Configuration
Legend:
-
required
-
optional
-
may use environment variable
-
accepts Name Templates
#
release:
# Repo in which the release will be created.
#
codeberg:
# Disables or enables publication to Codeberg.
# defaults to `true`.
#
enabled: true
# Defines the connection timeout in seconds.
# Defaults to `20`.
#
connectTimeout: 20
# Defines the read timeout in seconds.
# Defaults to `60`.
#
readTimeout: 60
# The user or organization that owns the repository.
#
owner: duke
# The name of the repository.
# If unspecified, will use `#{project.name}`.
#
name: app
# The Codeberg host url.
#
host: codeberg.org
# Username used for authoring commits. Must have write access to the repository.
# Defaults to the repository's owner.
#
username: duke
# Password or OAuth token with write access to the repository.
#
token: __DO_NOT_SET_HERE__
# The Codeberg API endpoint to use.
# You can skip `/api/v1` as it will be added by default.
#
apiEndpoint: https://codeberg.org
# The tag associated with the release.
# If left unspecified, will use `v{{projectVersion}}`.
#
tagName: v1.0.0
# The tag to compare against the release tag. Is used to fetch all commits between those tags.
# If left unspecified, will use the previous logical tag of `tagName`.
#
previousTagName: v0.9.0
# The name of the release.
# If left unspecified, will use `Release {{tagName}}`.
#
releaseName: Release v1.0.0
# Drops and creates an existing release with matching tag.
# Defaults to `false`.
#
overwrite: true
#
update:
# Appends artifacts to an existing release with matching tag,
# useful if `overwrite` is set to `false`.
# Defaults to `false`.
#
enabled: true
# Release sections to be updated.
# Supported values are [`TITLE`, `BODY`, `ASSETS`].
# Defaults to `ASSETS`.
#
sections:
- ASSETS
# Skips creating a tag.
# Useful when the tag was created externally.
# Defaults to `false`.
#
skipTag: false
# Skips creating a release.
# Useful when release assets will be handled with an uploader.
# Defaults to `false`.
#
skipRelease: false
# Signs commits with the configured credentials.
# The Signing section must be configured as well.
# Defaults to `false`.
#
sign: false
# The target branch to pull from.
# Defaults to the branch pointed by HEAD.
#
branch: main
# The target branch to push to.
# Defaults to the branch pointed by `#{branch}`.
#
branchPush: '{{projectName}}-{{tagName}}'
# Enables or disables asset upload.
# Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
# Defaults to `ALWAYS`.
#
uploadAssets: ALWAYS
# Release files.
# Defaults to `true`.
#
files: true
# Release distribution artifacts.
# Defaults to `true`.
#
artifacts: true
# Release checksum files.
# Defaults to `true`.
#
checksums: true
# Release signature files.
# Defaults to `true`.
#
signatures: true
# Release catalog files.
# Defaults to `true`.
#
catalogs: true
# Marks the release as a draft.
# Defaults to `false`.
#
draft: false
#
prerelease:
# Marks the release as prerelease.
# Defaults to `false`.
#
enabled: false
# A regex to determine if the project version is a prerelease
#
pattern: .*-pre
# Git author used to commit to the repository.
#
commitAuthor:
# Name used when authoring commits.
# Defaults to `jreleaserbot`.
#
name: jreleaserbot
# E-mail used when authoring commits.
# Defaults to `jreleaser@kordamp.org`.
#
email: jreleaser@kordamp.org
# A milestone associated with the release
#
milestone:
# Close the milestone (if it exists and still open) upon release.
# Defaults to `true`.
#
close: true
# The name/title of the milestone.
# May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
# Defaults to `{{tagName}}`.
#
name: '{{tagName}}'
# Update issues upon release.
# Adds a label and post a comment to every issue found in the changelog.
#
issues:
# Enables this feature.
# Defaults to `false`.
#
enabled: true
# Comment to post on matching issues.
#
comment: '🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))'
# Applies the current milestone to issues
# Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
#
applyMilestone: ALWAYS
# Describes the label to be applied.
# Defaults are shown.
#
label:
#
name: released
#
color: '#FF0000'
#
description: Issue has been released
# The following properties define URL formats.
# Defaults are shown.
# Review the available Name Templates.
#
repoUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}
#
repoCloneUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git
#
commitUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits
#
srcUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}
#
downloadUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}
#
releaseNotesUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}
#
latestReleaseUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest
#
issueTrackerUrl: https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues
# Repo in which the release will be created.
#
[release.codeberg]
# Disables or enables publication to Codeberg.
# defaults to `true`.
#
enabled = true
# Defines the connection timeout in seconds.
# Defaults to `20`.
#
connectTimeout = 20
# Defines the read timeout in seconds.
# Defaults to `60`.
#
readTimeout = 60
# The user or organization that owns the repository.
#
owner = "duke"
# The name of the repository.
# If unspecified, will use `#{project.name}`.
#
name = "app"
# The Codeberg host url.
#
host = "codeberg.org"
# Username used for authoring commits. Must have write access to the repository.
# Defaults to the repository's owner.
#
username = "duke"
# Password or OAuth token with write access to the repository.
#
token = "__DO_NOT_SET_HERE__"
# The Codeberg API endpoint to use.
# You can skip `/api/v1` as it will be added by default.
#
apiEndpoint = "https://codeberg.org"
# The tag associated with the release.
# If left unspecified, will use `v{{projectVersion}}`.
#
tagName = "v1.0.0"
# The tag to compare against the release tag. Is used to fetch all commits between those tags.
# If left unspecified, will use the previous logical tag of `tagName`.
#
previousTagName = "v0.9.0"
# The name of the release.
# If left unspecified, will use `Release {{tagName}}`.
#
releaseName = "Release v1.0.0"
# Drops and creates an existing release with matching tag.
# Defaults to `false`.
#
overwrite = true
#
[release.codeberg.update]
# Appends artifacts to an existing release with matching tag,
# useful if `overwrite` is set to `false`.
# Defaults to `false`.
#
enabled = true
# Release sections to be updated.
# Supported values are [`TITLE`, `BODY`, `ASSETS`].
# Defaults to `ASSETS`.
#
sections = ["ASSETS"]
# Skips creating a tag.
# Useful when the tag was created externally.
# Defaults to `false`.
#
skipTag = false
# Skips creating a release.
# Useful when release assets will be handled with an uploader.
# Defaults to `false`.
#
skipRelease = false
# Signs commits with the configured credentials.
# The Signing section must be configured as well.
# Defaults to `false`.
#
sign = false
# The target branch to pull from.
# Defaults to the branch pointed by HEAD.
#
branch = "main"
# The target branch to push to.
# Defaults to the branch pointed by `#{branch}`.
#
branchPush = "{{projectName}}-{{tagName}}"
# Enables or disables asset upload.
# Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
# Defaults to `ALWAYS`.
#
uploadAssets = "ALWAYS"
# Release files.
# Defaults to `true`.
#
files = true
# Release distribution artifacts.
# Defaults to `true`.
#
artifacts = true
# Release checksum files.
# Defaults to `true`.
#
checksums = true
# Release signature files.
# Defaults to `true`.
#
signatures = true
# Release catalog files.
# Defaults to `true`.
#
catalogs = true
# Marks the release as a draft.
# Defaults to `false`.
#
draft = false
# Marks the release as prerelease.
# Defaults to `false`.
#
prerelease.enabled = false
# A regex to determine if the project version is a prerelease
#
prerelease.pattern = .*-pre
# Git author used to commit to the repository.
# Name used when authoring commits.
# Defaults to `jreleaserbot`.
#
commitAuthor.name = "jreleaserbot"
# E-mail used when authoring commits.
# Defaults to `jreleaser@kordamp.org`.
#
commitAuthor.email = "jreleaser@kordamp.org"
# A milestone associated with the release
# Close the milestone (if it exists and still open) upon release.
# Defaults to `true`.
#
milestone.close = true
# The name/title of the milestone.
# May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
# Defaults to `{{tagName}}`.
#
milestone.name = "{{tagName}}"
# Update issues upon release.
# Adds a label and post a comment to every issue found in the changelog.
# Enables this feature.
# Defaults to `false`.
#
issues.enabled = true
# Comment to post on matching issues.
#
issues.comment = "🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))"
# Applies the current milestone to issues
# Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
#
issues.applyMilestone = "ALWAYS"
# Describes the label to be applied.
# Defaults are shown.
#
issues.label.name = "released"
#
issues.label.namecolor = "#FF0000"
#
issues.label.description = "Issue has been released"
# The following properties define URL formats.
# Defaults are shown.
# Review the available Name Templates.
#
repoUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}"
#
repoCloneUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git"
#
commitUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits"
#
srcUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}"
#
downloadUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}"
#
releaseNotesUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}"
#
latestReleaseUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest"
#
issueTrackerUrl = "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues"
{
//
"release": {
// Repo in which the release will be created.
//
"codeberg": {
// Disables or enables publication to Codeberg.
// defaults to `true`.
//
"enabled": true,
// Defines the connection timeout in seconds.
// Defaults to `20`.
//
"connectTimeout": 20,
// Defines the read timeout in seconds.
// Defaults to `60`.
//
"readTimeout": 60,
// The user or organization that owns the repository.
//
"owner": "duke",
// The name of the repository.
// If unspecified, will use `#{project.name}`.
//
"name": "app",
// The Codeberg host url.
//
"host": "codeberg.org",
// Username used for authoring commits. Must have write access to the repository.
// Defaults to the repository's owner.
//
"username": "duke",
// Password or OAuth token with write access to the repository.
//
"token": "__DO_NOT_SET_HERE__",
// The Codeberg API endpoint to use.
// You can skip `/api/v1` as it will be added by default.
//
"apiEndpoint": "https://codeberg.org",
// The tag associated with the release.
// If left unspecified, will use `v{{projectVersion}}`.
//
"tagName": "v1.0.0",
// The tag to compare against the release tag. Is used to fetch all commits between those tags.
// If left unspecified, will use the previous logical tag of `tagName`.
//
"previousTagName": "v0.9.0",
// The name of the release.
// If left unspecified, will use `Release {{tagName}}`.
//
"releaseName": "Release v1.0.0",
// Drops and creates an existing release with matching tag.
// Defaults to `false`.
//
"overwrite": true,
//
"update": {
// Appends artifacts to an existing release with matching tag,
// useful if `overwrite` is set to `false`.
// Defaults to `false`.
//
"enabled": true,
// Release sections to be updated.
// Supported values are [`TITLE`, `BODY`, `ASSETS`].
// Defaults to `ASSETS`.
//
"sections": ["ASSETS"]
},
// Skips creating a tag.
// Useful when the tag was created externally.
// Defaults to `false`.
//
"skipTag": false,
// Skips creating a release.
// Useful when release assets will be handled with an uploader.
// Defaults to `false`.
//
"skipRelease": false,
// Signs commits with the configured credentials.
// The Signing section must be configured as well.
// Defaults to `false`.
//
"sign": false,
// The target branch to pull from.
// Defaults to the branch pointed by HEAD.
//
"branch": "main",
// The target branch to push to.
// Defaults to the branch pointed by `#{branch}`.
//
"branchPush": "{{projectName}}-{{tagName}}",
// Enables or disables asset upload.
// Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
// Defaults to `ALWAYS`.
//
"uploadAssets": "ALWAYS",
// Release files.
// Defaults to `true`.
//
"files": true,
// Release distribution artifacts.
// Defaults to `true`.
//
"artifacts": true,
// Release checksum files.
// Defaults to `true`.
//
"checksums": true,
// Release signature files.
// Defaults to `true`.
//
"signatures": true,
// Release catalog files.
// Defaults to `true`.
//
"catalogs": true,
// Marks the release as a draft.
// Defaults to `false`.
//
"draft": false,
//
"prerelease": {
// Marks the release as prerelease.
// Defaults to `false`.
//
"enabled": false,
// A regex to determine if the project version is a prerelease
//
"pattern": ".*-pre"
},
// Git author used to commit to the repository.
//
"commitAuthor": {
// Name used when authoring commits.
// Defaults to `jreleaserbot`.
//
"name": "jreleaserbot",
// E-mail used when authoring commits.
// Defaults to `jreleaser@kordamp.org`.
//
"email": "jreleaser@kordamp.org"
},
// A milestone associated with the release
//
"milestone": {
// Close the milestone (if it exists and still open) upon release.
// Defaults to `true`.
//
"close": true,
// The name/title of the milestone.
// May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
// Defaults to `{{tagName}}`.
//
"name": "{{tagName}}"
},
// Update issues upon release.
// Adds a label and post a comment to every issue found in the changelog.
//
"issues": {
// Enables this feature.
// Defaults to `false`.
//
"enabled": true,
// Comment to post on matching issues.
//
"comment": "🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))",
// Applies the current milestone to issues
// Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
//
"applyMilestone": "ALWAYS",
// Describes the label to be applied.
// Defaults are shown.
//
"label": {
#
"name": "released",
#
"color": "#FF0000",
#
"description": "Issue has been released"
}
},
// The following properties define URL formats.
// Defaults are shown.
// Review the available Name Templates.
//
"repoUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}",
//
"repoCloneUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git",
//
"commitUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits",
//
"srcUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}",
//
"downloadUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}",
//
"releaseNotesUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}",
//
"latestReleaseUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest",
//
"issueTrackerUrl": "https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues"
}
}
}
<jreleaser>
<!--
-->
<release>
<!--
Repo in which the release will be created.
-->
<codeberg>
<!--
Disables or enables publication to Codeberg.
defaults to `true`.
-->
<enabled>true</enabled>
<!--
Defines the connection timeout in seconds.
Defaults to `20`.
-->
<connectTimeout>20</connectTimeout>
<!--
Defines the read timeout in seconds.
Defaults to `60`.
-->
<readTimeout>60</readTimeout>
<!--
The user or organization that owns the repository.
-->
<owner>duke</owner>
<!--
The name of the repository.
If unspecified, will use `#{project.name}`.
-->
<name>app</name>
<!--
The Codeberg host url.
-->
<host>codeberg.org</host>
<!--
Username used for authoring commits. Must have write access to the repository.
Defaults to the repository's owner.
-->
<username>duke</username>
<!--
Password or OAuth token with write access to the repository.
-->
<token>__DO_NOT_SET_HERE__</token>
<!--
The Codeberg API endpoint to use.
You can skip `/api/v1` as it will be added by default.
-->
<apiEndpoint>https://codeberg.org</apiEndpoint>
<!--
The tag associated with the release.
If left unspecified, will use `v{{projectVersion}}`.
-->
<tagName>v1.0.0</tagName>
<!--
The tag to compare against the release tag. Is used to fetch all commits between those tags.
If left unspecified, will use the previous logical tag of `tagName`.
-->
<previousTagName>v0.9.0</previousTagName>
<!--
The name of the release.
If left unspecified, will use `Release {{tagName}}`.
-->
<releaseName>Release v1.0.0</releaseName>
<!--
Drops and creates an existing release with matching tag.
Defaults to `false`.
-->
<overwrite>true</overwrite>
<!--
-->
<update>
<!--
Appends artifacts to an existing release with matching tag,
useful if `overwrite` is set to `false`.
Defaults to `false`.
-->
<enabled>true</enabled>
<!--
Release sections to be updated.
Supported values are [`TITLE`, `BODY`, `ASSETS`].
Defaults to `ASSETS`.
-->
<sections>
<section>ASSETS</section>
</sections>
</update>
<!--
Skips creating a tag.
Useful when the tag was created externally.
Defaults to `false`.
-->
<skipTag>false</skipTag>
<!--
Skips creating a release.
Useful when release assets will be handled with an uploader.
Defaults to `false`.
-->
<skipRelease>false</skipRelease>
<!--
Signs commits with the configured credentials.
The Signing section must be configured as well.
Defaults to `false`.
-->
<sign>false</sign>
<!--
The target branch to pull from.
Defaults to the branch pointed by HEAD.
-->
<branch>main</branch>
<!--
The target branch to push to.
Defaults to the branch pointed by `#{branch}`.
-->
<branchPush>{{projectName}}-{{tagName}}</branchPush>
<!--
Enables or disables asset upload.
Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
Defaults to `ALWAYS`.
-->
<uploadAssets>ALWAYS</uploadAssets>
<!--
Release files.
Defaults to `true`.
-->
<files>true</files>
<!--
Release distribution artifacts.
Defaults to `true`.
-->
<artifacts>true</artifacts>
<!--
Release checksum files.
Defaults to `true`.
-->
<checksums>true</checksums>
<!--
Release signature files.
Defaults to `true`.
-->
<signatures>true</signatures>
<!--
Release catalog files.
Defaults to `true`.
-->
<catalogs>true</catalogs>
<!--
Marks the release as a draft.
Defaults to `false`.
-->
<draft>false</draft>
<!--
-->
<prerelease>
<!--
Marks the release as prerelease.
Defaults to `false`.
-->
<enabled>false</enabled>
<!--
A regex to determine if the project version is a prerelease
-->
<pattern>.*-pre</enabled>
</prerelease>
<!--
Git author used to commit to the repository.
-->
<commitAuthor>
<!--
Name used when authoring commits.
Defaults to `jreleaserbot`.
-->
<name>jreleaserbot</name>
<!--
E-mail used when authoring commits.
Defaults to `jreleaser@kordamp.org`.
-->
<email>jreleaser@kordamp.org</email>
</commitAuthor>
<!--
A milestone associated with the release
-->
<milestone>
<!--
Close the milestone (if it exists and still open) upon release.
Defaults to `true`.
-->
<close>true</close>
<!--
The name/title of the milestone.
May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
Defaults to `{{tagName}}`.
-->
<name>{{tagName}}</name>
</milestone>
<!--
Update issues upon release.
Adds a label and post a comment to every issue found in the changelog.
--->
<issues>
<!--
Enables this feature.
Defaults to `false`.
-->
<enabled>true</enabled>
<!--
Comment to post on matching issues.
-->
<comment>🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))</comment>
<!--
Applies the current milestone to issues
Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
-->
<applyMilestone>ALWAYS</applyMilestone>
<!--
Describes the label to be applied.
Defaults are shown.
-->
<label>
#
<name>released</name>
#
<color>#FF0000</color>
#
<description>Issue has been released</description>
</label>
</issues>
<!--
The following properties define URL formats.
Defaults are shown.
Review the available Name Templates.
-->
<!--
-->
<repoUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}</repoUrl>
<!--
-->
<repoCloneUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git</repoCloneUrl>
<!--
-->
<commitUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits</commitUrl>
<!--
-->
<srcUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}</srcUrl>
<!--
-->
<downloadUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}</downloadUrl>
<!--
-->
<releaseNotesUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}</releaseNotesUrl>
<!--
-->
<latestReleaseUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest</latestReleaseUrl>
<!--
-->
<issueTrackerUrl>https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues</issueTrackerUrl>
</codeberg>
</release>
</jreleaser>
jreleaser {
//
release {
// Repo in which the release will be created.
//
codeberg {
// Disables or enables publication to Codeberg.
// defaults to `true`.
//
enabled = true
// Defines the connection timeout in seconds.
// Defaults to `20`.
//
connectTimeout = 20
// Defines the read timeout in seconds.
// Defaults to `60`.
//
readTimeout = 60
// The user or organization that owns the repository.
//
repoOwner = 'duke'
// The name of the repository.
// If unspecified, will use `#{project.name}`.
//
name = 'app'
// The Codeberg host url.
//
host = 'codeberg.org'
// Username used for authoring commits. Must have write access to the repository.
// Defaults to the repository's owner.
//
username = 'duke'
// Password or OAuth token with write access to the repository.
//
token = '__DO_NOT_SET_HERE__'
// The Codeberg API endpoint to use.
// You can skip `/api/v1` as it will be added by default.
//
apiEndpoint = 'https://codeberg.org'
// The tag associated with the release.
// If left unspecified, will use `v{{projectVersion}}`.
//
tagName = 'v1.0.0'
// The tag to compare against the release tag. Is used to fetch all commits between those tags.
// If left unspecified, will use the previous logical tag of `tagName`.
//
previousTagName = 'v0.9.0'
// The name of the release.
// If left unspecified, will use `Release {{tagName}}`.
//
releaseName = 'Release v1.0.0'
// Drops and creates an existing release with matching tag.
// Defaults to `false`.
//
overwrite = true
//
update {
// Appends artifacts to an existing release with matching tag,
// useful if `overwrite` is set to `false`.
// Defaults to `false`.
//
enabled = true
// Release sections to be updated.
// Supported values are [`TITLE`, `BODY`, `ASSETS`].
// Defaults to `ASSETS`.
//
section('ASSETS')
}
// Skips creating a tag.
// Useful when the tag was created externally.
// Defaults to `false`.
//
skipTag = false
// Skips creating a release.
// Useful when release assets will be handled with an uploader.
// Defaults to `false`.
//
skipRelease = false
// Signs commits with the configured credentials.
// The Signing section must be configured as well.
// Defaults to `false`.
//
sign = false
// The target branch to pull from.
// Defaults to the branch pointed by HEAD.
//
branch = 'main'
// The target branch to push to.
// Defaults to the branch pointed by `#{branch}`.
//
branchPush = '{{projectName}}-{{tagName}}'
// Enables or disables asset upload.
// Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`, `PRERELEASE`, `RELEASE_PRERELEASE`].
// Defaults to `ALWAYS`.
//
uploadAssets = 'ALWAYS'
// Release files.
// Defaults to `true`.
//
files = true
// Release distribution artifacts.
// Defaults to `true`.
//
artifacts = true
// Release checksum files.
// Defaults to `true`.
//
checksums = true
// Release signature files.
// Defaults to `true`.
//
signatures = true
// Release catalog files.
// Defaults to `true`.
//
catalogs = true
// Marks the release as a draft.
// Defaults to `false`.
//
draft = false
//
prerelease {
// Marks the release as prerelease.
// Defaults to `false`.
//
enabled = false
// A regex to determine if the project version is a prerelease
//
pattern = '.*-pre'
}
// Git author used to commit to the repository.
//
commitAuthor {
// Name used when authoring commits.
// Defaults to `jreleaserbot`.
//
name = 'jreleaserbot'
// E-mail used when authoring commits.
// Defaults to `jreleaser@kordamp.org`.
//
email = 'jreleaser@kordamp.org'
}
// A milestone associated with the release
//
milestone {
// Close the milestone (if it exists and still open) upon release.
// Defaults to `true`.
//
close = true
// The name/title of the milestone.
// May define a `JRELEASER_MILESTONE_NAME` environment variable instead.
// Defaults to `{{tagName}}`.
//
name = '{{tagName}}'
}
// Update issues upon release.
// Adds a label and post a comment to every issue found in the changelog.
//
issues {
// Enables this feature.
// Defaults to `false`.
//
enabled = true
// Comment to post on matching issues.
//
comment = '🎉 This issue has been resolved in `{{tagName}}` ([Release Notes]({{releaseNotesUrl}}))'
// Applies the current milestone to issues
// Valid values are: [`NEVER`, `ALWAYS`, `WARN`, `FORCE`].
//
applyMilestone = 'ALWAYS'
// Describes the label to be applied.
// Defaults are shown.
//
label {
#
name = 'released'
#
color = '#FF0000'
#
description = 'Issue has been released'
}
}
// The following properties define URL formats.
// Defaults are shown.
// Review the available Name Templates.
//
repoUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}'
//
repoCloneUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git'
//
commitUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits'
//
srcUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/{gitservice_blob}/{{repoBranch}}'
//
downloadUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFile}}'
//
releaseNotesUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}'
//
latestReleaseUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/latest'
//
issueTrackerUrl = 'https://{{repoHost}}/{{repoOwner}}/{{repoName}}/issues'
}
}
}
Environment
When not explicitly set, the value of the following properties may be resolved from an environment variable or a system property as shown in the table. The system property takes precedence over the environment variable.
System Property | Environment Variable |
---|---|
username |
|
jreleaser.codeberg.username |
JRELEASER_CODEBERG_USERNAME |
token |
|
jreleaser.codeberg.token |
JRELEASER_CODEBERG_TOKEN |
tagName |
|
jreleaser.tag.name |
JRELEASER_TAG_NAME |
previousTagName |
|
jreleaser.previous.tag.name |
JRELEASER_PREVIOUS_TAG_NAME |
releaseName |
|
jreleaser.release.name |
JRELEASER_RELEASE_NAME |
milestone.name |
|
jreleaser.milestone.name |
JRELEASER_MILESTONE_NAME |
branch |
|
jreleaser.branch |
JRELEASER_BRANCH |
branchPush |
|
jreleaser.branch.push |
JRELEASER_BRANCH_PUSH |
overwrite |
|
jreleaser.overwrite |
JRELEASER_OVERWRITE |
update.enabled |
|
jreleaser.update |
JRELEASER_UPDATE |
skipTag |
|
jreleaser.skip.tag |
JRELEASER_SKIP_TAG |
skipRelease |
|
jreleaser.skip.release |
JRELEASER_SKIP_RELEASE |
draft |
|
jreleaser.draft |
JRELEASER_DRAFT |
prerelease.pattern |
|
jreleaser.prelease.pattern |
JRELEASER_PRERELEASE_PATTERN |
Git Remote
JReleaser assumes the default Git remote to be named origin
however not everyone uses that name. Should you need to use
a different name you may define an environment variable named JRELEASER_DEFAULT_GIT_REMOTE
whose value is the name
of the remote.
You must use an environment variable, can not use external properties as explained in Environment. |
Skip Release
You have the option to skip artifacts and files from a release using these fields:
-
files
. Affects files defined by Files. -
artifacts
. Affects files defined by theartifacts
section of a Distribution. -
checksums
. Affects the calculated checksums for artifacts and files. -
signatures
. Affects the generated signature files for artifacts, files, and checksums.
Additionally you may decide to skip artifacts by defining the skipRelease
extra property as true
. The associated
signature file may be skipped as well by defining skipReleaseSignatures
as an extra property on the artifact. You may
also define either of this two properties on the owning distribution
in which case the settings apply to all artifacts
found in the distribution.
Issues
Upon release, JReleaser may attach a label and post a comment on every matching issue found in the changelog. The following regular expressions will be used to find matching issues:
-
{{issueTrackerUrl}}/(\d+)
-
{{repoOwner}}/{{repoName}}#(\d+)
-
#(\d+)
-
https://codeberg.org/duke/app/issues/123
-
duke/app#123
-
#123
The release process applies the following rules to mark issues:
-
Create the target label if it does not exist.
-
Lookup every matching issue. Skip if not closed or if it already has the label applied.
-
Apply the label and post a comment.
Additionally, the matching milestone may also be applied to issues. You may set the applyMilestone
property with any
of the following values:
-
NEVER
. Do not apply the milestone. -
ALWAYS
. Apply the milestone if the issue has no milestone. -
WARN
. Do not apply the milestone but warn if there’s an existing milestone that does not match the current one. -
FORCE
. Apply the milestone even if the issue had a different milestone.