Skip to content

Release ScyllaDB Java Driver #87

Release ScyllaDB Java Driver

Release ScyllaDB Java Driver #87

Workflow file for this run

name: Release ScyllaDB Java Driver
on:
workflow_dispatch:
inputs:
dry-run:
type: boolean
description: 'dry-run: run without pushing SCM changes to upstream'
default: false
skip-tests:
type: boolean
description: 'skip-tests: do not run tests while releasing'
default: false
target-tag:
type: string
description: 'target-tag: tag or branch name to release. Use to re-release tagged releases'
default: scylla-4.x
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
env:
MVNCMD: mvn -B -X -ntp
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Checkout Code One Commit Before ${{ inputs.version_tag }}
if: inputs.target-tag != 'scylla-4.x'
env:
RELEASE_TARGET_TAG: ${{ inputs.version_tag }}
run: make checkout-one-commit-before
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '8'
distribution: 'temurin'
server-id: central
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
server-username: SONATYPE_TOKEN_USERNAME
server-password: SONATYPE_TOKEN_PASSWORD
cache: maven
- name: Configure Git user
run: |
git config user.name "ScyllaDB Promoter"
git config user.email "[email protected]"
- name: Prepare release
env:
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
RELEASE_SKIP_TESTS: ${{ inputs.skip-tests }}
run: make release-prepare
- name: Perform release
if: inputs.dry-run == false
env:
RELEASE_SKIP_TESTS: ${{ inputs.skip-tests }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
SONATYPE_TOKEN_USERNAME: ${{ secrets.SONATYPE_TOKEN_USERNAME }}
SONATYPE_TOKEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
run: make release
- name: Perform release dry-run
if: inputs.dry-run == true
env:
RELEASE_SKIP_TESTS: ${{ inputs.skip-tests }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
SONATYPE_TOKEN_USERNAME: ${{ secrets.SONATYPE_TOKEN_USERNAME }}
SONATYPE_TOKEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
run: make release-dry-run
- name: Upload release logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: maven-stdout
path: /tmp/java-driver-release-logs/*.log
- name: Push changes to SCM
if: ${{ inputs.dry-run == false && inputs.target-tag == 'scylla-4.x' }}
run: |
git status && git log -3
git push origin --follow-tags -v