Files
jreleaser.github.io/docs/modules/tools/pages/cli.adoc
2021-04-14 15:32:15 +02:00

510 lines
18 KiB
Plaintext

= JReleaser CLI
Executes a JReleaser workflow as a command-line interface (CLI).
[source,bash]
----
$ jreleaser -h
Usage: jreleaser [-hV] [COMMAND]
jreleaser
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
Commands:
init Create a jreleaser config file.
config Display current configuration.
template Generate a tool template.
changelog Calculate the changelog.
checksum Calculate checksums.
sign Sign release artifacts.
release Create or update a release..
prepare Prepare all distributions.
package Package all distributions.
upload Upload all distributions.
announce Announce a release.
full-release Perform a full release.
----
The following commands are supported:
== init
[source,bash]
----
$ jreleaser init -h
Usage: jreleaser init [-dhioqVw] [-b=<basedir>] [-f=<format>]
Create a jreleaser config file.
-b, --basedir=<basedir> Base directory.
-d, --debug Set log level to debug.
-f, --format=<format> Configuration file format.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-o, --overwrite Overwrite existing files.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
Currently supported formats are: `yml`, `json`.
The file will be generated at `<basedir>` if specified, otherwise at the current directory.
== config
[source,bash]
----
$ jreleaser config -h
Usage: jreleaser config [-dfhiqVw] [-b=<basedir>] [-c=<configFile>]
Display current configuration.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-f, --full Display full configuration.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== template
[source,bash]
----
$ jreleaser template -h
Usage: jreleaser template [-dhioqsVw] [-b=<basedir>] -dn=<distributionName>
[-dt=<distributionType>] -tn=<toolName>
Generate a tool template.
-b, --basedir=<basedir> Base directory.
-d, --debug Set log level to debug.
-dn, --distribution-name=<distributionName>
The name of the distribution.
-dt, --distribution-type=<distributionType>
The type of the distribution.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-o, --overwrite Overwrite existing files.
-q, --quiet Log errors only.
-s, --snapshot Use snapshot templates.
-tn, --tool-name=<toolName>
The name of the tool.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--basedir` is undefined then the command assumes it's the current directory.
The value of `--distribution-name` must eventually match the name of a configured
xref:configuration:distributions.adoc[distribution].
The value of `--distribution-type` must match any of the available
xref:ROOT:distributions/index.adoc[distribution types].
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
== changelog
[source,bash]
----
$ jreleaser changelog -h
Usage: jreleaser changelog [-dhiqVw] [-b=<basedir>] [-c=<configFile>]
Calculate the changelog.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== checksum
[source,bash]
----
$ jreleaser checksum -h
Usage: jreleaser checksum [-dhiqVw] [-b=<basedir>] [-c=<configFile>]
Calculate checksums.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== sign
[source,bash]
----
$ jreleaser sign -h
Usage: jreleaser sign [-dhiqVw] [-b=<basedir>] [-c=<configFile>]
Sign release artifacts.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
== release
[source,bash]
----
$ jreleaser release -h
Usage: jreleaser release [-dhiqVwy] [--auto-config] [--overwrite]
[--prerelease] [--signing-armored] [--signing-enabled]
[--skip-tag] [--update] [-b=<basedir>]
[-c=<configFile>] [--changelog=<changelog>]
[--commit-author-email=<commitAuthorEmail>]
[--commit-author-name=<commitAuthorName>]
[--milestone-name=<milestoneName>]
[--project-name=<projectName>]
[--project-version=<projectVersion>]
[--release-name=<releaseName>] [--tag-name=<tagName>]
[--username=<username>] [--file=<files>]...
Create or update a release..
--auto-config Model auto configuration..
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
--changelog=<changelog>
Path to changelog file.
--commit-author-email=<commitAuthorEmail>
Commit author e-mail.
--commit-author-name=<commitAuthorName>
Commit author name.
-d, --debug Set log level to debug.
--file=<files> Input file(s) to be uploaded.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
--milestone-name=<milestoneName>
The milestone name.
--overwrite Overwrite an existing release.
--prerelease If the release is a prerelease.
--project-name=<projectName>
The projects name.
--project-version=<projectVersion>
The projects version.
-q, --quiet Log errors only.
--release-name=<releaseName>
The release name.
--signing-armored Generate ascii armored signatures.
--signing-enabled Sign files.
--skip-tag Skip tagging the release.
--tag-name=<tagName> The release tag.
--update Update an existing release.
--username=<username> Git username.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
-y, --dryrun Skips remote operations.
----
There are two usage modes:
* auto config
* with explicit configuration file
*AutoConfig*
If `--basedir` is undefined then the command assumes it's the same directory where the command is run.
The `--file` parameter is repeatable.
*Explicit Configuration file*
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
IMPORTANT: None of the command flags that override model properties can be used in this mode.
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== prepare
[source,bash]
----
$ jreleaser prepare -h
Usage: jreleaser prepare [-dhiqVw] [-b=<basedir>] [-c=<configFile>]
[-dn=<distributionName>] [-tn=<toolName>]
Prepare all distributions.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-dn, --distribution-name=<distributionName>
The name of the distribution.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-tn, --tool-name=<toolName>
The name of the tool.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
The value of `--distribution-name` must match the name of a configured xref:configuration:distributions.adoc[distribution].
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
You may invoke this command in the following ways:
Prepare all distributions:
[source,bash]
----
$ jreleaser prepare
----
Prepare a single distribution with all configured tools:
[source,bash]
----
$ jreleaser prepare --distribution-name app
----
Prepare all distributions with a single tool:
[source,bash]
----
$ jreleaser prepare --tool-name brew
----
Prepare a single distribution with a single tool:
[source,bash]
----
$ jreleaser prepare --distribution-name app --tool-name brew
----
== package
[source,bash]
----
$ jreleaser package -h
Usage: jreleaser package [-dhiqVwy] [-b=<basedir>] [-c=<configFile>]
[-dn=<distributionName>] [-tn=<toolName>]
Package all distributions.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-dn, --distribution-name=<distributionName>
The name of the distribution.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-tn, --tool-name=<toolName>
The name of the tool.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
-y, --dryrun Skips remote operations.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
The value of `--distribution-name` must match the name of a configured xref:configuration:distributions.adoc[distribution].
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
You may invoke this command in the following ways:
Package all distributions:
[source,bash]
----
$ jreleaser package
----
Package a single distribution with all configured tools:
[source,bash]
----
$ jreleaser package --distribution-name app
----
Package all distributions with a single tool:
[source,bash]
----
$ jreleaser package --tool-name brew
----
Package a single distribution with a single tool:
[source,bash]
----
$ jreleaser package --distribution-name app --tool-name brew
----
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== upload
[source,bash]
----
$ jreleaser upload -h
Usage: jreleaser upload [-dhiqVwy] [-b=<basedir>] [-c=<configFile>]
[-dn=<distributionName>] [-tn=<toolName>]
Upload all distributions.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-dn, --distribution-name=<distributionName>
The name of the distribution.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-tn, --tool-name=<toolName>
The name of the tool.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
-y, --dryrun Skips remote operations.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
The value of `--distribution-name` must match the name of a configured xref:configuration:distributions.adoc[distribution].
The value of `--tool-name` must match any of the available xref:configuration:packagers/index.adoc[].
You may invoke this command in the following ways:
Upload all distributions:
[source,bash]
----
$ jreleaser upload
----
Upload a single distribution with all configured tools:
[source,bash]
----
$ jreleaser upload --distribution-name app
----
Upload all distributions with a single tool:
[source,bash]
----
$ jreleaser upload --tool-name brew
----
Upload a single distribution with a single tool:
[source,bash]
----
$ jreleaser upload --distribution-name app --tool-name brew
----
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== announce
[source,bash]
----
$ jreleaser announce -h
Usage: jreleaser announce [-dhiqVwy] [-an=<announcerName>] [-b=<basedir>]
[-c=<configFile>]
Announce a release.
-an, --announcer-name=<announcerName>
The name of the announcer.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
-y, --dryrun Skips remote operations.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
The value of `--announcer-name` must match any of the available xref:configuration:announce/index.adoc[announcers].
You may invoke this command in the following ways:
Announce with all configured announcers:
[source,bash]
----
$ jreleaser announce
----
Announce with a single announcer:
[source,bash]
----
$ jreleaser announce --announcer-name brew
----
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.
== full-release
[source,bash]
----
$ jreleaser full-release -h
Usage: jreleaser full-release [-dhiqVwy] [-b=<basedir>] [-c=<configFile>]
Perform a full release.
-b, --basedir=<basedir> Base directory.
-c, --config-file=<configFile>
The config file
-d, --debug Set log level to debug.
-h, --help Show this help message and exit.
-i, --info Set log level to info.
-q, --quiet Log errors only.
-V, --version Print version information and exit.
-w, --warn Set log level to warn.
-y, --dryrun Skips remote operations.
----
If `--config-file` is undefined then the command assumes the file is named `jreleaser.[yml|toml|json]` and it's
found at the current directory.
If `--basedir` is undefined then the command assumes it's the same directory that contains the resolved config file.
NOTE: Use `-y` or `--dryrun` during development to verify your configuration settings. No network uploads nor repository
mutations should occur when this mode is activated.