1- name : Master branch CI
1+ name : Release CI
22
33on :
4- push :
5- branches :
6- - ' master'
4+ release :
5+ types : [released]
76
87jobs :
98 build :
10- name : Master Branch CI
9+ name : Release CI
1110 runs-on : ubuntu-latest
1211 steps :
1312 - uses : actions/checkout@v2
1413 with :
1514 fetch-depth : 0
15+ - run : git checkout ${{ github.event.release.target_commitish }}
1616 - uses : actions/cache@v1
1717 with :
1818 path : ~/.m2/repository
1919 key : ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
2020 restore-keys : |
2121 ${{ runner.os }}-maven-
22- - name : Set up JDK
22+ - name : Set up Java for publishing to GitHub Packages
2323 uses : actions/setup-java@v1
2424 with :
25- java-version : 17
26- - name : Set up Maven
27- run : cp build.settings.xml ~/.m2/settings.xml
25+ java-version : 1.8
26+ server-id : github
27+ server-username : GITHUB_ACTOR
28+ server-password : GITHUB_TOKEN
2829 - name : Maven Build
2930 run : mvn clean install -DskipTests=true -Ddockerfile.skip=true -B -V
3031 env :
@@ -33,29 +34,45 @@ jobs:
3334 run : mvn verify -B
3435 - name : Configure git
3536 run : |
36- echo "Git checkout branch ${GITHUB_REF##*/}, commit ${GITHUB_SHA} was pushed by ${GITHUB_ACTOR}"
37- git checkout ${GITHUB_REF##*/}
38- echo "Git reset hard to ${GITHUB_SHA}"
39- git reset --hard ${GITHUB_SHA}
4037 git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
4138 git config --global user.name "${GITHUB_ACTOR}"
4239 - name : Prepare release
4340 id : prepare_release
4441 run : |
4542 mvn -B build-helper:parse-version release:prepare \
4643 -DreleaseVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion} \
47- -DdevelopmentVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT \
48- -Darguments="-DskipTests=true"
44+ -Darguments="-DskipTests=true -Ddockerfile.skip=true"
4945 echo ::set-output name=release_tag::$(git describe --tags --abbrev=0)
5046 - name : Perform release
51- run : mvn -B release:perform -Darguments="-DskipTests=true -Ddocker.image.extra-tag=master "
47+ run : mvn -B release:perform -Pdeploy2Github - Darguments="-DskipTests=true -Ddockerfile.skip=true -Pdeploy2Github "
5248 env :
5349 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5450 GITHUB_REPOSITORY : ${{ secrets.GITHUB_REPOSITORY }}
51+ - name : Set up Java for publishing to Maven Central Repository
52+ uses : actions/setup-java@v1
53+ with :
54+ java-version : 1.8
55+ server-id : ossrh
56+ server-username : MAVEN_USERNAME
57+ server-password : MAVEN_PASSWORD
58+ gpg-private-key : ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
59+ gpg-passphrase : MAVEN_GPG_PASSPHRASE
60+ - name : Deploy release version to the Maven Central Repository
61+ run : |
62+ release_version=$(echo ${{ steps.prepare_release.outputs.release_tag }} | sed "s/release-//")
63+ echo release version $release_version
64+ mvn versions:set -DnewVersion=$release_version -DgenerateBackupPoms=false
65+ mvn versions:commit
66+ mvn deploy -Pdeploy2Maven -DskipTests -B -V
67+ env :
68+ MAVEN_USERNAME : ${{ secrets.OSSRH_USERNAME }}
69+ MAVEN_PASSWORD : ${{ secrets.OSSRH_TOKEN }}
70+ MAVEN_GPG_PASSPHRASE : ${{ secrets.MAVEN_GPG_PASSPHRASE }}
5571 - name : Rollback release
5672 if : failure()
5773 run : |
5874 mvn release:rollback || echo "nothing to rollback"
75+ git push origin :refs/tags/${{ github.event.release.tag_name }}
5976 if [ ! -z "${{ steps.prepare_release.outputs.release_tag }}" ]
6077 then
6178 git tag -d ${{ steps.prepare_release.outputs.release_tag }}
0 commit comments