- Ensure java version is greater than or equal to 11
java --version- Sign a random
.txtfile (gpg tty for YubiKey PIN + gradle build don't mix)
gpg --sign --armor --detach ~/Documents/hello.txt- Ensure you are in a
bashshell
bash- Set version variable in terminal shell
VERSION_NAME="<version name>"- Create a release branch
git checkout master
git pull
git checkout -b release_"$VERSION_NAME"-
Update
VERSION_NAME(remove-SNAPSHOT) andVERSION_CODEin root project'sgradle.propertiesfile -
Update
versionin project'sREADME.mddocumentation -
Update
CHANGELOG.md -
Commit Changes
git add --all
git commit -S -m "Prepare $VERSION_NAME release"
git tag -s "$VERSION_NAME" -m "Release v$VERSION_NAME"- Make sure you have valid credentials in
~/.gradle/gradle.properties
mavenCentralUsername=MyUserName
mavenCentralPassword=MyPassword
- Make sure you have GPG gradle config setup in
~/.gradle/gradle.propertiesfor signing
signing.keyId=MyGPGKeyId
signing.password=MyGPGKeyPassword
signing.secretKeyRingFile=/path/to/.gnupg/MyGPGKey.gpg
- Perform a clean build
./gradlew clean -DKMP_TARGETS_ALL
./gradlew build --no-build-cache -DKMP_TARGETS_ALL- Publish
./gradlew publishAllPublicationsToMavenCentralRepository --no-daemon --no-parallel -DKMP_TARGETS_ALL-
The gradle-maven-publish-plugin should have automatically closed the staged repositories, but if it did not:
- Close publications (Don't release yet)
- Login to Central Portal: central.sonatype.org
- Click on Staging Repositories
- Select all Publications
- Click Close then Confirm
- Wait a bit, hit Refresh until the Status changes to Closed
- Close publications (Don't release yet)
-
Check Publication
./gradlew clean -PCHECK_PUBLICATION -DKMP_TARGETS_ALL
./gradlew :tools:check-publication:build --refresh-dependencies -PCHECK_PUBLICATION -DKMP_TARGETS_ALL-
Release publications from Central Portal UI at central.sonatype.com
-
Merge release branch to
master
git checkout master
git pull
git merge --no-ff -S release_"$VERSION_NAME"- Publish
dokkadocumentation
./gh-pages/publish.sh-
Update
VERSION_NAME(add-SNAPSHOT) andVERSION_CODEin root project'sgradle.propertiesfile -
Commit changes
git add --all
git commit -S -m "Prepare for next development iteration"- Push Changes
git push- Push Tag
git push origin "$VERSION_NAME"- Delete local release branch
git branch -D release_"$VERSION_NAME"
git fetch origin --prune- Wait for releases to become available on MavenCentral
- Draft new release on GitHub
- Enter the release name as tag and title
- Have the description point to the changelog