Skip to content

Maven Central Deploy #18

Maven Central Deploy

Maven Central Deploy #18

# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
name: Maven Central Deploy
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: '25'
distribution: 'temurin'
cache: maven
server-id: maven-central
server-username: ${{ secrets.OSSRH_USERNAME }}
server-password: ${{ secrets.OSSRH_PASSWORD }}
#gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
#gpg-passphrase: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Import GPG key
run: |
echo "${{ secrets.OSSRH_GPG_SECRET_KEY }}" | gpg --batch --import
gpg --list-secret-keys --keyid-format=long
# - name: Deploy parent POM
# run: |
# echo "🚀 Deploying parent POM"
# mvn -B -N deploy -DskipTests -Dgpg.skip=true -Pmaven-central,release -s $GITHUB_WORKSPACE/settings.xml -U -e
# env:
# GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
# - name: Get all child modules
# id: modules
# run: |
# modules=$(mvn help:evaluate -Dexpression=project.modules -q -DforceStdout | tr -d '[]' | tr ',' ' ')
# echo "modules=$modules" >> $GITHUB_OUTPUT
#
# - name: Deploy child modules
# run: |
# for module in ${{ steps.modules.outputs.modules }}; do
# echo "🚀 Deploying module: $module"
# mvn -B -pl $module -am deploy -DskipTests -Pmaven-central,release -s $GITHUB_WORKSPACE/settings.xml -U -e || exit 1
# done
# env:
# GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
- name: Extract project version
id: get_version
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | grep -v '^\[' | head -n1 | tr -d '%')
echo "project_version=$VERSION" >> $GITHUB_ENV
echo "Detected version: $VERSION"
- name: Deploy to Maven Central
if: ${{ !contains(env.project_version, 'SNAPSHOT') }}
run: mvn -B clean deploy -DskipTests -Pmaven-central,release -s $GITHUB_WORKSPACE/settings.xml -U -e
env:
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}