55 tags :
66 - ' v*'
77 workflow_dispatch :
8+ inputs :
9+ version :
10+ description : ' Version to release (e.g., 1.0.1)'
11+ required : true
12+ type : string
813
914permissions :
1015 contents : write
@@ -16,10 +21,10 @@ jobs:
1621
1722 steps :
1823 - name : Checkout
19- uses : actions/checkout@v7
24+ uses : actions/checkout@v4
2025
2126 - name : Set up JDK 25
22- uses : actions/setup-java@v5
27+ uses : actions/setup-java@v4
2328 with :
2429 java-version : ' 25'
2530 distribution : ' temurin'
@@ -29,18 +34,44 @@ jobs:
2934 server-password : MAVEN_PASSWORD
3035
3136 - name : Import GPG Key
32- uses : crazy-max/ghaction-import-gpg@v7
37+ uses : crazy-max/ghaction-import-gpg@v6
3338 with :
3439 gpg_private_key : ${{ secrets.GPG_PRIVATE_KEY }}
3540
41+ - name : Set Version if manual
42+ if : github.event_name == 'workflow_dispatch'
43+ run : |
44+ VERSION="${{ inputs.version }}"
45+ # Strip 'v' prefix if provided (for Maven)
46+ MAVEN_VERSION="${VERSION#v}"
47+ ./mvnw versions:set -DnewVersion=$MAVEN_VERSION -DgenerateBackupPoms=false
48+
3649 - name : Build and Deploy
3750 run : ./mvnw clean deploy -Prelease --batch-mode --no-transfer-progress
3851 env :
3952 MAVEN_USERNAME : ${{ secrets.MAVEN_USERNAME }}
4053 MAVEN_PASSWORD : ${{ secrets.MAVEN_PASSWORD }}
4154
55+ - name : Determine Tag Name
56+ id : get_tag
57+ run : |
58+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
59+ VERSION="${{ inputs.version }}"
60+ if [[ $VERSION != v* ]]; then
61+ TAG_NAME="v$VERSION"
62+ else
63+ TAG_NAME="$VERSION"
64+ fi
65+ echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
66+ echo "release_name=Release $TAG_NAME" >> $GITHUB_OUTPUT
67+ else
68+ echo "tag_name=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
69+ echo "release_name=Release ${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
70+ fi
71+
4272 - name : Create GitHub Release
43- if : startsWith(github.ref, 'refs/tags/')
44- uses : softprops/action-gh-release@v3
73+ uses : softprops/action-gh-release@v2
4574 with :
75+ tag_name : ${{ steps.get_tag.outputs.tag_name }}
76+ name : ${{ steps.get_tag.outputs.release_name }}
4677 generate_release_notes : true
0 commit comments