From 48f402c70f2e1e3f6dc6affea6c50ac62203ced6 Mon Sep 17 00:00:00 2001 From: "Mark S. Lewis" Date: Mon, 20 Feb 2023 21:17:35 +0000 Subject: [PATCH] Add release workflow Signed-off-by: Mark S. Lewis --- .github/scripts/maven_publish_release.sh | 11 ++++++ .github/workflows/release.yml | 50 ++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 .github/scripts/maven_publish_release.sh create mode 100644 .github/workflows/release.yml diff --git a/.github/scripts/maven_publish_release.sh b/.github/scripts/maven_publish_release.sh new file mode 100755 index 00000000..ab4595fb --- /dev/null +++ b/.github/scripts/maven_publish_release.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +PUBLISH_PROFILE="${1:?}" + +POM_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:evaluate -Dexpression=project.version -q -DforceStdout) +PUBLISH_VERSION="${POM_VERSION%%-*}" + +mvn --batch-mode --no-transfer-progress versions:set -DnewVersion="${PUBLISH_VERSION}" +mvn --batch-mode --no-transfer-progress --activate-profiles "release,${PUBLISH_PROFILE}" -DskipTests deploy diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..b603034f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,50 @@ +name: Release + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + publish-github: + name: Publish Java artifact to GitHub Packages + runs-on: ubuntu-22.04 + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: 8 + distribution: temurin + cache: maven + gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }} + gpg-passphrase: MAVEN_GPG_PASSPHRASE + - name: Publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + run: ${{ github.workspace }}/.github/scripts/maven_publish_release.sh github + + publish-ossrh: + name: Publish Java artifact to Maven Central + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: 8 + distribution: temurin + cache: maven + server-id: ossrh + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }} + gpg-passphrase: MAVEN_GPG_PASSPHRASE + - name: Publish + env: + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + run: ${{ github.workspace }}/.github/scripts/maven_publish_release.sh ossrh