Releasing
Prerequisites
Ensure you have the following GitHub secrets configured:
SONATYPE_USERNAME
: Your Sonatype usernameSONATYPE_PASSWORD
: Your Sonatype passwordGPG_SIGNING_KEY
: Your exported ASCII-armored GPG private keyGPG_SIGNING_KEY_ID
: Your GPG key IDGPG_SIGNING_KEY_PASSWORD
: Your GPG key passwordGRADLE_PUBLISH_KEY
: Your Gradle Plugin Portal API keyGRADLE_PUBLISH_SECRET
: Your Gradle Plugin Portal API secret
Release Process
Option 1: Automated Release (Recommended)
- Create a local release branch from
master
git checkout master
git pull
git checkout -b release_0.11.1
- Update
version
indoctor-plugin/build.gradle.kts
(remove-SNAPSHOT
)
version = "0.11.1"
- Update the current version and next version in
mkdocs.yml
:
extra:
doctor:
release: '0.11.1'
next_release: 'REPLACE_WITH_NEXT_VERSION_NUMBER'
- Take one last look
git diff
- Commit all local changes
git commit -am "Prepare 0.11.1 release"
- Push the release branch
git push origin release_0.11.1
-
Create a pull request and merge to master
-
Create a GitHub Release:
-
Go to the GitHub repository
- Click "Releases" → "Create a new release"
- Tag version:
v0.11.1
(this will create a tag starting withv
) - Release title:
0.11.1
- Add release notes
-
Click "Publish release"
-
The GitHub Action will automatically:
-
Publish to Maven Central (staging)
-
Publish to Gradle Plugin Portal
-
Merge the release branch to master
git checkout master
git pull
git merge --no-ff release_0.11.1
- Update
version
indoctor-plugin/build.gradle.kts
(increase version and add-SNAPSHOT
)
version = "REPLACE_WITH_NEXT_VERSION_NUMBER-SNAPSHOT"
- Commit your changes
git commit -am "Prepare for next development iteration"
- Push your changes
git push
Option 2: Manual Release
If you prefer manual control over the release process:
-
Follow steps 1-8 from Option 1 above
-
Upload to Maven Central
./gradlew publishToMavenCentral --no-configuration-cache
-
Release to Maven Central manually:
-
Login to Central Portal: https://central.sonatype.org/
- Navigate to your staging repository
-
Find your staging repository and click Release
-
Upload to Gradle Plugin Portal
./gradlew publishToGradlePlugin
- Follow steps 9-12 from Option 1 above
Workflow Files
The repository uses .github/workflows/gradle-release.yml
for releases, which triggers when a GitHub Release is published and uploads to staging and requires manual release on Central Portal.
Snapshot Publishing
Snapshots are automatically published to Maven Central when changes are pushed to the master
branch.