mirror of
https://github.com/jlengrand/jreleaser.github.io.git
synced 2026-03-10 08:31:25 +00:00
464 lines
12 KiB
Plaintext
464 lines
12 KiB
Plaintext
= Environment
|
|
|
|
JReleaser can configure some of its fields from external sources. This allows keeping a stable configuration file and only
|
|
update the external sources to produce a new release. Values may be read from a Java properties file or from
|
|
environment variables, the file has precendence over the environment variables.
|
|
|
|
By default, the external properties file should be located at `~/.jreleaser/config.properties` however you may change
|
|
that location by setting/changing the value of the `JRELEASER_USER_HOME` environment variable or using the block
|
|
described next:
|
|
|
|
include::partial$legend.adoc[]
|
|
|
|
[tabs]
|
|
====
|
|
YAML::
|
|
+
|
|
[source,yaml]
|
|
[subs="+macros"]
|
|
----
|
|
# Configures environment sources.
|
|
# icon:dot-circle[]
|
|
environment:
|
|
|
|
# Location of a properties file with key/value pairs
|
|
# Each key must be prefixed with `JRELEASER_` and match
|
|
# the environment variable it overrides.
|
|
# icon:dot-circle[]
|
|
variables: path/to/alternate/config.properties
|
|
|
|
# Additional properties used when evaluating templates.
|
|
# icon:dot-circle[]
|
|
properties:
|
|
foo: bar
|
|
----
|
|
TOML::
|
|
+
|
|
[source,toml]
|
|
[subs="+macros"]
|
|
----
|
|
# Configures environment sources.
|
|
# icon:dot-circle[]
|
|
[environment]
|
|
|
|
# Location of a properties file with key/value pairs
|
|
# Each key must be prefixed with `JRELEASER_` and match
|
|
# the environment variable it overrides.
|
|
# icon:dot-circle[]
|
|
variables = "path/to/alternate/config.properties"
|
|
|
|
# Additional properties used when evaluating templates.
|
|
# icon:dot-circle[]
|
|
properties.foo = "bar"
|
|
----
|
|
JSON::
|
|
+
|
|
[source,json]
|
|
[subs="+macros"]
|
|
----
|
|
{
|
|
// Configures environment sources.
|
|
// icon:dot-circle[]
|
|
"environment": {
|
|
// Location of a properties file with key/value pairs
|
|
// Each key must be prefixed with `JRELEASER_` and match
|
|
// the environment variable it overrides.
|
|
// icon:dot-circle[]
|
|
"variables": "path/to/alternate/config.properties",
|
|
|
|
// Additional properties used when evaluating templates.
|
|
// icon:dot-circle[]
|
|
"properties": {
|
|
"foo": "bar"
|
|
}
|
|
}
|
|
}
|
|
----
|
|
Maven::
|
|
+
|
|
[source,xml]
|
|
[subs="+macros,verbatim"]
|
|
----
|
|
<jreleaser>
|
|
<!--
|
|
Configures environment sources.
|
|
icon:dot-circle[]
|
|
-->
|
|
<environment>
|
|
<!--
|
|
Location of a properties file with key/value pairs
|
|
Each key must be prefixed with `JRELEASER_` and match
|
|
the environment variable it overrides.
|
|
icon:dot-circle[]
|
|
-->
|
|
<variables>path/to/alternate/config.properties</variables>
|
|
|
|
<!--
|
|
Additional properties used when evaluating templates.
|
|
icon:dot-circle[]
|
|
-->
|
|
<properties>
|
|
<foo>bar</foo>
|
|
</properties>
|
|
</environment>
|
|
</jreleaser>
|
|
----
|
|
Gradle::
|
|
+
|
|
[source,groovy]
|
|
[subs="+macros"]
|
|
----
|
|
jreleaser {
|
|
// Configures environment sources.
|
|
// icon:dot-circle[]
|
|
environment {
|
|
// Location of a properties file with key/value pairs
|
|
// Each key must be prefixed with `JRELEASER_` and match
|
|
// the environment variable it overrides.
|
|
// icon:dot-circle[]
|
|
variables = 'path/to/alternate/config.properties'
|
|
|
|
// Additional properties used when evaluating templates.
|
|
// icon:dot-circle[]
|
|
properties.put('foo', 'bar')
|
|
}
|
|
}
|
|
----
|
|
====
|
|
|
|
Formats currently supported for the properties file are:
|
|
|
|
* `.properties`
|
|
* `.yml`
|
|
* `.toml`
|
|
* `.json`
|
|
|
|
[tabs]
|
|
====
|
|
PROPERTIES::
|
|
+
|
|
[source,properties]
|
|
[subs="+macros"]
|
|
.config.properties
|
|
----
|
|
JRELEASER_GITHUB_TOKEN = b9df0920aefcbfa69f57c4f02bae4396
|
|
----
|
|
YAML::
|
|
+
|
|
[source,yaml]
|
|
[subs="+macros"]
|
|
.config.yml
|
|
----
|
|
JRELEASER_GITHUB_TOKEN: b9df0920aefcbfa69f57c4f02bae4396
|
|
----
|
|
TOML::
|
|
+
|
|
[source,toml]
|
|
[subs="+macros"]
|
|
.config.toml
|
|
----
|
|
JRELEASER_GITHUB_TOKEN = "b9df0920aefcbfa69f57c4f02bae4396"
|
|
----
|
|
JSON::
|
|
+
|
|
[source,json]
|
|
[subs="+macros"]
|
|
.config.json
|
|
----
|
|
{
|
|
"JRELEASER_GITHUB_TOKEN": "b9df0920aefcbfa69f57c4f02bae4396"
|
|
}
|
|
----
|
|
====
|
|
|
|
NOTE: The config file must use the appropriate file extension that matches the format in use.
|
|
|
|
== Maven
|
|
|
|
JReleaser will honor Maven project properties. These properties can be defined in several ways:
|
|
|
|
- on the command line by using the `-D` flag.
|
|
- on a `pom.xml` by using the `<properties>` block.
|
|
- on a settings file using the `<properties>` block inside an active profile.
|
|
|
|
JReleaser should be able to handle properties define in any of these ways.
|
|
Precedence is:
|
|
|
|
- values defined in the model.
|
|
- values defined as Maven properties.
|
|
- values defined in `<releaser><environment><variables>`.
|
|
- environment variables.
|
|
|
|
Keys must either be fully uppercase words separated by underscores (`_`) or fully lowercase words separated by dots (`.`).
|
|
The uppercase variant has precedence over the lowercase variant. For example, the Github token may be defined in
|
|
`~/.m2/settings.xml` as:
|
|
|
|
[source,xml]
|
|
[subs="verbatim"]
|
|
.settings.xml
|
|
----
|
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
|
|
https://maven.apache.org/xsd/settings-1.0.0.xsd">
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>jreleaser</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<properties>
|
|
<JRELEASER_GITHUB_TOKEN>2ee1ce8ff570e0bOVEdrZvie8792058</JRELEASER_GITHUB_TOKEN>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</settings>
|
|
----
|
|
|
|
Or as
|
|
|
|
[source,xml]
|
|
[subs="verbatim"]
|
|
.settings.xml
|
|
----
|
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
|
|
https://maven.apache.org/xsd/settings-1.0.0.xsd">
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>jreleaser</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<properties>
|
|
<jreleaser.github.token>2ee1ce8ff570e0bOVEdrZvie8792058</jreleaser.github.token>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</settings>
|
|
----
|
|
|
|
== Gradle
|
|
|
|
JReleaser will honor Gradle project properties. These properties can be defined in several ways:
|
|
|
|
- on the command line by using the `-P` flag.
|
|
- on a `gradle.properties` file adjacent to the project.
|
|
- on a `gradle.properties` file located at `~/.gradle`.
|
|
|
|
JReleaser should be able to handle properties define in any of these ways.
|
|
Precedence is:
|
|
- values defined in the model.
|
|
- values defined as Gradle project properties.
|
|
- values defined in `jreleaser.environment.variables`.
|
|
- environment variables.
|
|
|
|
Keys must either be fully uppercase words separated by underscores (`_`) or fully lowercase words separated by dots (`.`).
|
|
The uppercase variant has precedence over the lowercase variant. For example, the Github token may be defined in
|
|
`/.gradle/gradle.properties` as:
|
|
|
|
[source]
|
|
.gradle.properties
|
|
----
|
|
JRELEASER_GITHUB_TOKEN = 2ee1ce8ff570e0bOVEdrZvie8792058
|
|
----
|
|
|
|
Or as:
|
|
|
|
[source]
|
|
.gradle.properties
|
|
----
|
|
jreleaser.github.token = 2ee1ce8ff570e0bOVEdrZvie8792058
|
|
----
|
|
|
|
== Keys & Values
|
|
|
|
The following key/values may be defined as properties or as environment variables:
|
|
|
|
=== Project
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_PROJECT_NAME | the project name
|
|
| JRELEASER_PROJECT_VERSION | the project version
|
|
| JRELEASER_SNAPSHOT_PATTERN | a regex to determine if the project version is snapshot
|
|
|===
|
|
|
|
=== Release
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_TAG_NAME | the release tag name
|
|
| JRELEASER_RELEASE_NAME | the release name
|
|
| JRELEASER_MILESTONE_NAME | the milestone name/title
|
|
| JRELEASER_BRANCH | the release branch
|
|
| JRELEASER_OVERWRITE | overwrite an existing release
|
|
| JRELEASER_UPDATE | update an existing release
|
|
| JRELEASER_SKIP_TAG | skip tagging the release
|
|
| JRELEASER_PRERELEASE | release is a prerelease (github/gitea)
|
|
| JRELEASER_DRAFT | release is a draft (github/gitea)
|
|
| JRELEASER_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Signing
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_GPG_PASSPHRASE | the passphrase to decrypt the secret key
|
|
| JRELEASER_GPG_PUBLIC_KEY | the public key used for signing
|
|
| JRELEASER_GPG_SECRET_KEY | the secret key used for signing
|
|
|===
|
|
|
|
=== Artifactory
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_ARTIFACTORY_${NAME}_USERNAME | a username matching the named Artifactory instance
|
|
| JRELEASER_ARTIFACTORY_${NAME}_PASSWORD | a password matching the named Artifactory instance
|
|
| JRELEASER_ARTIFACTORY_${NAME}_TOKEN | a token matching the named Artifactory instance
|
|
|===
|
|
|
|
=== Docker
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_DOCKER_${NAME}_PASSWORD | a docker password matching the named server
|
|
|===
|
|
|
|
=== Homebrew
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_HOMEBREW_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_HOMEBREW_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_HOMEBREW_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_HOMEBREW_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Chocolatey
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_CHOCOLATEY_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_CHOCOLATEY_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_CHOCOLATEY_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_CHOCOLATEY_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Jbang
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_JBANG_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_JBANG_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_JBANG_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_JBANG_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Scoop
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_SCOOP_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_SCOOP_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_SCOOP_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_SCOOP_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Snap
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_SNAP_GITHUB_TOKEN | a GitHub token with `repo` scope
|
|
| JRELEASER_SNAP_GITLAB_TOKEN | a GitLab token with `api` scope
|
|
| JRELEASER_SNAP_GITEA_TOKEN | a Gitea personal token
|
|
| JRELEASER_SNAP_CODEBERG_TOKEN | a Codeberg personal token
|
|
|===
|
|
|
|
=== Discord
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_DISCORD_WEBHOOK | the webhook URL
|
|
|===
|
|
|
|
=== Gitter
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_GITTER_WEBHOOK | the webhook URL
|
|
|===
|
|
|
|
=== Mail
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_MAIL_PASSWORD | the password required for sending e-mails
|
|
|===
|
|
|
|
=== Sdkman
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_SDKMAN_CONSUMER_KEY | the consumer key required by SdkMan!
|
|
| JRELEASER_SDKMAN_CONSUMER_TOKEN | the consumer token required by SdkMan!
|
|
|===
|
|
|
|
=== Slack
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_SLACK_TOKEN | a bot or a personal Slack token
|
|
| JRELEASER_SLACK_WEBHOOK | the webhook URL
|
|
|===
|
|
|
|
=== Teams
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_TEAMS_WEBHOOK | the webhook URL
|
|
|===
|
|
|
|
=== Twitter
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_TWITTER_CONSUMER_KEY | the consumer key required by Twitter
|
|
| JRELEASER_TWITTER_CONSUMER_TOKEN | the consumer token required by Twitter
|
|
| JRELEASER_TWITTER_ACCESS_TOKEN | the access token required by Twitter
|
|
| JRELEASER_TWITTER_ACCESS_TOKEN_SECRET | the access token secret required by Twitter
|
|
|===
|
|
|
|
=== Zulip
|
|
|
|
[%header, cols="<1,<1", width="100%"]
|
|
|===
|
|
| Key | Description
|
|
| JRELEASER_ZULIP_API_KEY | the api key required by Zulip
|
|
|===
|
|
|
|
|