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 distribution : ' temurin'
1914 java-version : 17
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 : Enforce project version ${{ github.event.inputs.tag }}
25- run : mvn versions:set -B -DnewVersion=${{ 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 }}
20+ run : |
21+ PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
22+ test "$PROJECT_VERSION" = "${{ github.event.release.tag_name }}"
2623 - name : Deploy
2724 run : mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
2825 env :
3128 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
3229 --add-opens=java.base/java.text=ALL-UNNAMED
3330 --add-opens=java.desktop/java.awt.font=ALL-UNNAMED
34- MAVEN_USERNAME : ${{ secrets.OSSRH_USERNAME }}
35- MAVEN_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
31+ MAVEN_CENTRAL_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
32+ MAVEN_CENTRAL_PASSWORD : ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
3633 MAVEN_GPG_PASSPHRASE : ${{ secrets.RELEASES_GPG_PASSPHRASE }}
3734 MAVEN_GPG_KEY : ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
0 commit comments