11name : Publish to Maven Central
22on :
3- workflow_dispatch :
4- inputs :
5- tag :
6- description : ' Tag'
7- required : true
8- default : ' 0.0.0'
3+ release :
4+ types : [published]
95jobs :
106 publish :
117 runs-on : ubuntu-latest
8+ if : startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions
129 steps :
1310 - uses : actions/checkout@v4
14- with :
15- ref : " refs/tags/${{ github.event.inputs.tag }}"
1611 - uses : actions/setup-java@v4
1712 with :
1813 java-version : 21
1914 distribution : ' zulu'
2015 cache : ' maven'
21- server-id : ossrh # Value of the distributionManagement/repository/id field of the pom.xml
22- server-username : MAVEN_USERNAME # env variable for username in deploy
23- server-password : MAVEN_PASSWORD # env variable for token in deploy
24- - name : Verify project version = ${{ github.event.inputs.tag }}
16+ server-id : central
17+ server-username : MAVEN_CENTRAL_USERNAME
18+ server-password : MAVEN_CENTRAL_PASSWORD
19+ - name : Verify project version = ${{ github.event.release.tag_name }}
2520 run : |
2621 PROJECT_VERSION=$(./mvnw help:evaluate "-Dexpression=project.version" -q -DforceStdout)
27- test "$PROJECT_VERSION" = "${{ github.event.inputs.tag }}"
22+ test "$PROJECT_VERSION" = "${{ github.event.release.tag_name }}"
2823 - name : Deploy
2924 run : ./mvnw deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
3025 env :
31- MAVEN_USERNAME : ${{ secrets.OSSRH_USERNAME }}
32- MAVEN_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
26+ MAVEN_CENTRAL_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
27+ MAVEN_CENTRAL_PASSWORD : ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
3328 MAVEN_GPG_PASSPHRASE : ${{ secrets.RELEASES_GPG_PASSPHRASE }}
3429 MAVEN_GPG_KEY : ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
30+ MAVEN_GPG_KEY_FINGERPRINT : ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
0 commit comments