@@ -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 "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 : 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