Files
jreleaser.github.io/docs/modules/configuration/pages/environment.adoc
2021-04-20 21:54:35 +02:00

290 lines
7.6 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')
}
}
----
====
The following key/values may be defined in the properties file 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 (targetCommitish/ref)
| 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_GITHUB_TOKEN | a GitHub token with `repo` scope
| JRELEASER_GITLAB_TOKEN | a GitLab token with `api` scope
| JRELEASER_GITEA_TOKEN | a Gitea 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
|===
== 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
|===
== 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
|===
== 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
|===
== 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
|===
== 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
|===
== 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
|===
== 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
|===