@@ -2,14 +2,17 @@ name: Release CI
22
33on :
44 release :
5- types : [published ]
5+ types : [released ]
66
77jobs :
88 build :
99 name : Release CI
1010 runs-on : ubuntu-latest
1111 steps :
1212 - uses : actions/checkout@v2
13+ with :
14+ fetch-depth : 0
15+ - run : git checkout ${{ github.event.release.target_commitish }}
1316 - uses : actions/cache@v1
1417 with :
1518 path : ~/.m2/repository
@@ -23,16 +26,35 @@ jobs:
2326 server-id : github
2427 server-username : GITHUB_ACTOR
2528 server-password : GITHUB_TOKEN
26- - name : Deploy release version
27- run : |
28- # `tag` is the concatenation of `v` and a version by the tag convention.
29- release_version=$(echo ${{ github.event.release.tag_name }} | sed "s/v//")
30- echo Release version $release_version
31- mvn versions:set -DnewVersion=$release_version -DgenerateBackupPoms=false
32- mvn versions:commit
33- mvn clean deploy -B -V
29+ - name : Maven Build
30+ run : mvn clean install -DskipTests=true -Ddockerfile.skip=true -B -V
3431 env :
3532 GITHUB_TOKEN : ${{ secrets.ORGANIZATION_TOKEN }}
36- - name : Rollback release (remove tag)
33+ - name : Maven Verify
34+ run : mvn verify -B
35+ - name : Configure git
36+ run : |
37+ git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
38+ git config --global user.name "${GITHUB_ACTOR}"
39+ - name : Prepare release
40+ id : prepare_release
41+ run : |
42+ mvn -B build-helper:parse-version release:prepare \
43+ -DreleaseVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion} \
44+ -Darguments="-DskipTests=true -Ddockerfile.skip=true"
45+ echo ::set-output name=release_tag::$(git describe --tags --abbrev=0)
46+ - name : Perform release
47+ run : mvn -B release:perform -Darguments="-DskipTests=true -Ddockerfile.skip=true"
48+ env :
49+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
50+ GITHUB_REPOSITORY : ${{ secrets.GITHUB_REPOSITORY }}
51+ - name : Rollback release
3752 if : failure()
38- run : git push origin :refs/tags/${{ github.event.release.tag_name }}
53+ run : |
54+ mvn release:rollback || echo "nothing to rollback"
55+ git push origin :refs/tags/${{ github.event.release.tag_name }}
56+ if [ ! -z "${{ steps.prepare_release.outputs.release_tag }}" ]
57+ then
58+ git tag -d ${{ steps.prepare_release.outputs.release_tag }}
59+ git push origin :refs/tags/${{ steps.prepare_release.outputs.release_tag }}
60+ fi
0 commit comments