@@ -3,10 +3,20 @@ name: Release ScyllaDB Java Driver
33on :
44 workflow_dispatch :
55 inputs :
6- dryrun :
6+ dry-run :
77 type : boolean
8- description : ' dryrun: run without publishing the package'
9- default : true
8+ description : ' dry-run: run without pushing SCM changes to upstream'
9+ default : false
10+
11+ skip-tests :
12+ type : boolean
13+ description : ' skip-tests: do not run tests while releasing'
14+ default : false
15+
16+ target-tag :
17+ type : string
18+ description : ' target-tag: tag or branch name to release. Use to re-release tagged releases'
19+ default : scylla-4.x
1020
1121jobs :
1222 release :
@@ -20,53 +30,64 @@ jobs:
2030 MVNCMD : mvn -B -X -ntp
2131
2232 steps :
23- - name : Checkout Repository
24- uses : actions/checkout@v5
33+ - name : Checkout Repository
34+ uses : actions/checkout@v4
2535
26- - name : Set up Java
27- uses : actions/setup-java@v5
28- with :
29- java-version : ' 8'
30- distribution : ' temurin'
31- server-id : ossrh
32- gpg-private-key : ${{ secrets.GPG_PRIVATE_KEY }}
33- server-username : OSSRH_USERNAME
34- server-password : OSSRH_PASSWORD
36+ - name : Checkout Code One Commit Before ${{ inputs.version_tag }}
37+ if : inputs.target-tag != 'scylla-4.x'
38+ env :
39+ RELEASE_TARGET_TAG : ${{ inputs.version_tag }}
40+ run : make checkout-one-commit-before
3541
36- - name : Configure Git user
37- run : |
38- git config user.name "ScyllaDB Promoter"
39- git config user.email "[email protected] " 42+ - name : Set up Java
43+ uses : actions/setup-java@v5
44+ with :
45+ java-version : ' 11'
46+ distribution : ' temurin'
47+ server-id : central
48+ gpg-private-key : ${{ secrets.GPG_PRIVATE_KEY }}
49+ server-username : SONATYPE_TOKEN_USERNAME
50+ server-password : SONATYPE_TOKEN_PASSWORD
51+ cache : maven
4052
41- - name : Clean project
42- run : $MVNCMD clean
53+ - name : Configure Git user
54+ run : |
55+ git config user.name "ScyllaDB Promoter"
56+ git config user.email "[email protected] " 4357
44- - name : Clean release
45- run : $MVNCMD release:clean
58+ - name : Prepare release
59+ env :
60+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
61+ RELEASE_SKIP_TESTS : ${{ inputs.skip-tests }}
62+ run : make release-prepare
4663
47- - name : Prepare release
48- env :
49- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
50- run : make release-prepare
64+ - name : Perform release
65+ if : inputs.dry-run == false
66+ env :
67+ RELEASE_SKIP_TESTS : ${{ inputs.skip-tests }}
68+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
69+ SONATYPE_TOKEN_USERNAME : ${{ secrets.SONATYPE_TOKEN_USERNAME }}
70+ SONATYPE_TOKEN_PASSWORD : ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
71+ run : make release
5172
52- - name : Perform release
53- env :
54- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
55- OSSRH_USERNAME : ${{ secrets.OSSRH_USERNAME }}
56- OSSRH_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
57- if : ${{ github.event.inputs.dryrun == false }}
58- run : make release
73+ - name : Perform release dry-run
74+ if : inputs.dry-run == true
75+ env :
76+ RELEASE_SKIP_TESTS : ${{ inputs.skip-tests }}
77+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
78+ SONATYPE_TOKEN_USERNAME : ${{ secrets.SONATYPE_TOKEN_USERNAME }}
79+ SONATYPE_TOKEN_PASSWORD : ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
80+ run : make release-dry-run
5981
60- - name : Perform dry-run release
61- env :
62- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
63- OSSRH_USERNAME : ${{ secrets.OSSRH_USERNAME }}
64- OSSRH_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
65- if : ${{ github.event.inputs.dryrun == true }}
66- run : make release-dry-run
82+ - name : Upload release logs
83+ if : failure()
84+ uses : actions/upload-artifact@v4
85+ with :
86+ name : maven-stdout
87+ path : /tmp/java-driver-release-logs/*.log
6788
68- - name : Push changes to SCM
69- if : ${{ github.event. inputs.dryrun == false }}
70- run : |
71- git status && git log -3
72- git push origin --follow-tags -v
89+ - name : Push changes to SCM
90+ if : ${{ inputs.dry-run == false && inputs.target-tag == 'scylla-4.x' }}
91+ run : |
92+ git status && git log -3
93+ git push origin --follow-tags -v
0 commit comments