11name : Publish package to Maven Central
22
33on :
4- release :
5- types : [ published ]
6- workflow_dispatch :
4+ push :
5+ tags :
6+ - ' v* '
77
88permissions :
99 contents : read
@@ -13,7 +13,30 @@ concurrency:
1313 cancel-in-progress : false
1414
1515jobs :
16- deploy :
16+ determine-release-type :
17+ name : Determine Release Type
18+ runs-on : ubuntu-latest
19+ permissions :
20+ contents : read
21+
22+ outputs :
23+ is-pre-release : ${{ steps.determine.outputs.is-pre-release }}
24+ tag-name : ${{ github.ref_name }}
25+
26+ steps :
27+ - name : Determine Release Type
28+ id : determine
29+ run : |
30+ TAG=${GITHUB_REF#refs/tags/}
31+ if [[ "$TAG" == *"-"* ]]; then
32+ echo "This is a pre-release version."
33+ echo "is-pre-release=true" >> $GITHUB_OUTPUT
34+ else
35+ echo "This is a stable release version."
36+ echo "is-pre-release=false" >> $GITHUB_OUTPUT
37+ fi
38+
39+ publish-artifacts :
1740 runs-on : ubuntu-latest
1841
1942 steps :
@@ -26,10 +49,28 @@ jobs:
2649 - name : Build project
2750 run : ./gradlew clean build
2851
29- - name : Publish package to Maven Central
52+ - name : Publish artifacts to Maven Central
3053 run : ./gradlew publish
3154 env :
3255 ORG_GRADLE_PROJECT_mavenCentralUsername : ${{ secrets.OSSRH_USERNAME }}
3356 ORG_GRADLE_PROJECT_mavenCentralPassword : ${{ secrets.OSSRH_PASSWORD }}
3457 ORG_GRADLE_PROJECT_signingInMemoryKey : ${{ secrets.SIGNING_KEY }}
3558 ORG_GRADLE_PROJECT_signingInMemoryKeyPassword : ${{ secrets.SIGNING_PASSWORD }}
59+
60+ release :
61+ name : Publish Release Notes
62+ runs-on : ubuntu-latest
63+ needs : [ determine-release-type, publish-artifacts ]
64+ permissions :
65+ contents : write
66+
67+ steps :
68+ - name : Create GitHub Release
69+ uses : softprops/action-gh-release@v2
70+ with :
71+ tag_name : ${{ needs.determine-release-type.outputs.tag-name }}
72+ name : ${{ needs.determine-release-type.outputs.tag-name }}
73+ draft : false
74+ prerelease : ${{ needs.determine-release-type.outputs.is-pre-release }}
75+ body : |
76+ **${{ needs.determine-release-type.outputs.tag-name }}**
0 commit comments