@@ -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,65 @@ 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 "github-promoter@scylladb.com"
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 "github-promoter@scylladb.com"
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 : |
63+ make release-prepare
4664
47- - name : Prepare release
48- env :
49- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
50- run : make release-prepare
65+ - name : Perform release
66+ if : inputs.dry-run == false
67+ env :
68+ RELEASE_SKIP_TESTS : ${{ inputs.skip-tests }}
69+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
70+ SONATYPE_TOKEN_USERNAME : ${{ secrets.SONATYPE_TOKEN_USERNAME }}
71+ SONATYPE_TOKEN_PASSWORD : ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
72+ run : make release
5173
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
74+ - name : Perform release dry-run
75+ if : inputs.dry-run == true
76+ env :
77+ RELEASE_SKIP_TESTS : ${{ inputs.skip-tests }}
78+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
79+ SONATYPE_TOKEN_USERNAME : ${{ secrets.SONATYPE_TOKEN_USERNAME }}
80+ SONATYPE_TOKEN_PASSWORD : ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
81+ run : make release-dry-run
5982
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
83+ - name : Upload release logs
84+ if : failure()
85+ uses : actions/upload-artifact@v4
86+ with :
87+ name : maven-stdout
88+ path : /tmp/java-driver-release-logs/*.log
6789
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
90+ - name : Push changes to SCM
91+ if : ${{ inputs.dry-run == false && inputs.target-tag == 'scylla-4.x' }}
92+ run : |
93+ git status && git log -3
94+ git push origin --follow-tags -v
0 commit comments