Skip to content

Publish package to Maven Central Repository #16

Publish package to Maven Central Repository

Publish package to Maven Central Repository #16

name: Publish package to Maven Central Repository
on:
release:
types: [ published ]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Extract version from tag
id: version
run: |
raw_tag_name="${GITHUB_REF_NAME}"
# Extract last x.y.z pattern
version=$(echo "$raw_tag_name" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+$')
echo "VERSION=$version" >> $GITHUB_ENV
- name: Set up JDK 25 with GPG
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 25
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
server-id: central
server-username: CENTRAL_USERNAME
server-password: CENTRAL_PASSWORD
- name: Configure git user for release
run: |
git config user.name "github-actions"
git config user.email "github-actions@github.com"
- name: Build & Deploy to Staging
env:
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_PASSWORD: ${{ secrets.CENTRAL_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
# Build and deploy artifacts (signed)
echo "🚀 Building release version: $VERSION"
mvn -B clean deploy -P makeRelease -DskipTests -Drevision="$VERSION" -ntp