1515 steps :
1616 - name : Checkout code
1717 uses : actions/checkout@v4
18+ with :
19+ fetch-depth : 0
20+ token : ${{ secrets.GITHUB_TOKEN }}
1821
1922 - name : Set up Java
2023 uses : actions/setup-java@v4
@@ -27,29 +30,59 @@ jobs:
2730 gpg-private-key : ${{ secrets.GPG_PRIVATE_KEY }}
2831 gpg-passphrase : GPG_PASSPHRASE
2932
30- - name : Get version from pom.xml
31- id : get_version
33+ - name : Configure Git
34+ run : |
35+ git config user.name "github-actions[bot]"
36+ git config user.email "github-actions[bot]@users.noreply.github.com"
37+
38+ - name : Get current version and increment
39+ id : version
3240 run : |
33- VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
34- echo "version=$VERSION" >> $GITHUB_OUTPUT
41+ CURRENT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
42+ echo "current=$CURRENT_VERSION" >> $GITHUB_OUTPUT
43+
44+ # Remove -SNAPSHOT if present
45+ RELEASE_VERSION=${CURRENT_VERSION%-SNAPSHOT}
46+ echo "release=$RELEASE_VERSION" >> $GITHUB_OUTPUT
47+
48+ # Calculate next version (increment patch)
49+ IFS='.' read -r major minor patch <<< "$RELEASE_VERSION"
50+ NEXT_VERSION="$major.$minor.$((patch + 1))-SNAPSHOT"
51+ echo "next=$NEXT_VERSION" >> $GITHUB_OUTPUT
52+
53+ - name : Set release version
54+ run : |
55+ mvn versions:set -DnewVersion=${{ steps.version.outputs.release }} -DgenerateBackupPoms=false
3556
3657 - name : Build and verify
3758 run : mvn -B clean verify -Prelease
3859 env :
3960 GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
4061
4162 - name : Deploy to Maven Central
42- run : mvn -B clean deploy -Prelease
63+ run : mvn -B deploy -Prelease -DskipTests
4364 env :
4465 CENTRAL_USERNAME : ${{ secrets.CENTRAL_USERNAME }}
4566 CENTRAL_PASSWORD : ${{ secrets.CENTRAL_PASSWORD }}
4667 GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
4768
69+ - name : Create Git tag
70+ run : |
71+ git tag -a "v${{ steps.version.outputs.release }}" -m "Release v${{ steps.version.outputs.release }}"
72+ git push origin "v${{ steps.version.outputs.release }}"
73+
4874 - name : Create GitHub Release
4975 uses : softprops/action-gh-release@v1
5076 with :
51- tag_name : v${{ steps.get_version .outputs.version }}
52- name : Release v${{ steps.get_version .outputs.version }}
77+ tag_name : v${{ steps.version .outputs.release }}
78+ name : Release v${{ steps.version .outputs.release }}
5379 generate_release_notes : true
5480 env :
5581 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
82+
83+ - name : Set next development version
84+ run : |
85+ mvn versions:set -DnewVersion=${{ steps.version.outputs.next }} -DgenerateBackupPoms=false
86+ git add pom.xml
87+ git commit -m "chore: bump version to ${{ steps.version.outputs.next }} [skip ci]"
88+ git push origin main
0 commit comments