Skip to content

Do Release

Do Release #5

Workflow file for this run

name: Do Release
on:
workflow_dispatch:
inputs:
release-version:
description: 'Version to be released (e.g. 2.3.0).'
required: true
next-snapshot-version:
description: 'Version to be set after the release - without the -SNAPSHOT suffix (e.g. 2.4.0).'
required: true
permissions:
contents: write
env:
GIT_AUTHOR_NAME: Flash Gordon
GIT_AUTHOR_EMAIL: <>
GIT_COMMITTER_NAME: Terminator the Kitty
GIT_COMMITTER_EMAIL: <>
jobs:
do-release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java and credentials
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
cache: 'maven'
- name: Do the Deployment and related stuff
id: maven_release
run: |
VERSION=${{ github.event.inputs.release-version }}
NEXT_VERSION=${{ github.event.inputs.next-snapshot-version }}-SNAPSHOT
TAG=mvnquery_${VERSION}
set -x
mvn --batch-mode clean install
mvn -P release --batch-mode "-Dtag=${TAG}" release:prepare \
"-DreleaseVersion=${VERSION}" \
"-DdevelopmentVersion=${NEXT_VERSION}" -DskipTests
mvn -P release --batch-mode release:perform \
-DskipTests -DstagingProgressTimeoutMinutes=30 -Dmaven.wagon.rto=7200000 \
-Dmaven.wagon.httpconnectionManager.maxPerRoute=60 -Dmaven.wagon.httpconnectionManager.maxTotal=100
echo "TAG=$TAG" >> $GITHUB_OUTPUT
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload binaries to release
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd
with:
file: target/mvnquery.jar
file_glob: true
tag: ${{ steps.maven_release.outputs.TAG }}
overwrite: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Docker Build and Push the image
run: docker buildx build --push -f Dockerfile --tag kwart/mvnquery:${{ github.event.inputs.release-version }} .
- name: Update Docker description
uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae # v4.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: kwart/mvnquery
readme-filepath: ./README-docker.md