JReleaser follows a series of steps to create and upload a release. You may invoke all steps in one go (the preferred way) or each step individually and separate from the others. Steps are executed sequentially; if one of them fails then the build fails. You may decide to resume from the start or from the last failed step.
Announcers are the only exception, if one of them fails then the build may continue however a warning is printed out. You may decide to rerun all announcers or just the one that failed.
|The preferred option is to invoke Full Release as it runs all steps in the expected sequence.|
The following diagram shows the steps and their dependencies with one another:
The following sections describe these steps:
Creates the changelog, either by taking a supplemented external file or calculates it based on the last tag that matches the configuration.
Calculates SHA256 checksums on all input files. This includes all artifacts per distribution and every matching file configured in the Files section.
All files must exist by the time Checksum is invoked, otherwise an error will occur.
Checksums will be placed at
Creates PGP signatures for all input files. This includes all artifacts per distribution and every matching
file configured in the Files section, plus the output file from the Checksum
"checksums.txt"). This step is optional and can be disabled if needed. Review the Signing
section found in the configuration.
Signatures will be placed at
Depends on Checksum.
Generates files required by Packagers such as Homebrew.
These files will be generated from templates existing in your project at a configured location (the
each packager) and default templates bundled in the JReleaser distribution. These template files rely on
Name Templates to parameterize their contents.
Prepared files will be placed at
Depends on Checksum.
Processes the files created by the Prepare step to create specific packages. The Snap
packager may log into the Snapcraft store and publish a snap if its
remotebBuild filed is set to
false for example.
Other packagers do not require additional customization of the prepared files and simply copy the files over from their
matching prepared directory to their respective package directory.
Packaged files will be placed at
Depends on Prepare.
Publishes packaged files to their respective destinations. For example, for Homebrew this means creating or updating a "hombrew-tap" repository, for JBang this means creating or merging a "jbang-catalog" repository.
Depends on Package.
Does not explicitly depend on Release however some packagers such as Snap require downloading distribution files to locally build a snap.