gpg(for artifact signing)sha256sum(for checksums)~/.m2/settings.xmlwith credentials for Maven Central- Clean git working directory on
main/masterbranch
./release.sh <VERSION>
# With specific GPG key
./release.sh <VERSION> --gpg-key <KEY_ID>
# Show help
./release.sh --help# Release version 1.6.0
./release.sh 1.6.0
# Release with specific GPG key
./release.sh 1.6.0 --gpg-key ABC123DEF- Validates prerequisites (mvnw, maven settings, gpg, git, sha256sum)
- Validates git state (clean worktree, on main/master branch)
- Checks no existing release branch or tag exists
- Creates release branch:
release-{VERSION} - Updates version across all Maven modules
- Builds and verifies all modules
- Deploys
collectormodule to Maven Central - Assembles release artifacts in
RELEASE/directory:- Copies javaagent, isolator_javaagent, and standalone jars
- Signs each jar with GPG
- Generates SHA256 checksums
- Commits release on release branch
- Creates annotated tag:
v{VERSION} - Pushes release branch and tag to remote
- Switches back to main branch
- Sets post-release version:
{VERSION}-POST - Commits and pushes post-release version
Release artifacts will be located in the RELEASE directory:
jmx_prometheus_javaagent-<VERSION>.jarjmx_prometheus_javaagent-<VERSION>.jar.ascjmx_prometheus_javaagent-<VERSION>.jar.sha256jmx_prometheus_isolator_javaagent-<VERSION>.jarjmx_prometheus_isolator_javaagent-<VERSION>.jar.ascjmx_prometheus_isolator_javaagent-<VERSION>.jar.sha256jmx_prometheus_standalone-<VERSION>.jarjmx_prometheus_standalone-<VERSION>.jar.ascjmx_prometheus_standalone-<VERSION>.jar.sha256
Attach all files to the GitHub release.