Skip to content

Publish Maven

Publish Maven #3

name: Publish Maven Snapshot
on:
workflow_run:
workflows:
- build
types:
- completed
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
publish-maven-snapshot:
if: ${{ github.repository == 'apache/casbin-jcasbin' && (github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success') }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.workflow_run.head_sha || github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
server-id: ossrh
server-username: OSSRH_JIRA_USERNAME
server-password: OSSRH_JIRA_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Compute Maven snapshot version
id: snapshot
run: |
LATEST_RELEASE_TAG="$(
git tag --list 'v*' |
grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' |
sort -V |
tail -n 1
)"
if [ -z "${LATEST_RELEASE_TAG}" ]; then
SNAPSHOT_VERSION="0.1.0-SNAPSHOT"
else
RELEASE_VERSION="${LATEST_RELEASE_TAG#v}"
MAJOR="${RELEASE_VERSION%%.*}"
REST="${RELEASE_VERSION#*.}"
MINOR="${REST%%.*}"
NEXT_MINOR="$((MINOR + 1))"
SNAPSHOT_VERSION="${MAJOR}.${NEXT_MINOR}.0-SNAPSHOT"
fi
echo "version=${SNAPSHOT_VERSION}" >> "${GITHUB_OUTPUT}"
echo "Computed Maven snapshot version: ${SNAPSHOT_VERSION}"
- name: Publish Maven snapshot
run: |
mvn -B org.codehaus.mojo:versions-maven-plugin:2.16.2:set -DnewVersion="${{ steps.snapshot.outputs.version }}" -DgenerateBackupPoms=false
mvn -B deploy -DskipTests
env:
GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }}
OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }}