Shell scripts to build and release are located int the tools
directory.
Pre-release builds are not source controlled (no branch, no tag)
Command
./tools/build-and-copy.sh <version> <destination directory>
Example
./tools/build-and-copy.sh 0.20.0-ALPHA-1 "/tmp/"
The jars will be located in /tmp
Release builds are source controlled.
- Creates a
release-<version>
branch - Creates a
<version>
tag - Pushes the branch and tag to GitHub
- Stages the release to Maven Central
Command
./tools/build-and-stage.sh <version>
Example
./tools/build-and-stage.sh 0.20.0
Download the staged artifacts from Maven Central and run the integration test suite.
Example
/home/dhoard/Downloads/jmx_prometheus_javaagent-0.20.0.jar
/home/dhoard/Downloads/jmx_prometheus_httpserver-0.20.0.jar
Command
./tools/patch-and-run-integration-test-suite.sh <javaagent.jar> <httpserver.jar>
Example
./tools/patch-and-run-integration-test-suite.sh /home/dhoard/Downloads/jmx_prometheus_javaagent-0.20.0.jar /home/dhoard/Downloads/jmx_prometheus_httpserver-0.20.0.jar
If the integration test suite in Step 2 passes, on Maven Central...
- Click
Close
to trigger Sonatype's verification - Once closed, click
Release
Verify the files are available via Maven Central (Maven)
Create a GitHub release
Checkout the main
branch and increment the version
git checkout main
./tools/change-version.sh 1.0.0-SNAPSHOT
git add -u
git commit -m "prepare for next development iteration"