Skip to content

chore: add CHANGELOG.md with semantic-release automation #14

chore: add CHANGELOG.md with semantic-release automation

chore: add CHANGELOG.md with semantic-release automation #14

Workflow file for this run

name: Publish to Maven Central
on:
push:
tags: ['v*']
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: temurin
cache: maven
server-id: central
server-username: NEXUS_USERNAME
server-password: NEXUS_PASSWORD
gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Verify GPG key
run: |
echo "GPG secret keys:"
gpg --list-secret-keys --keyid-format=long
if ! gpg --list-secret-keys 2>/dev/null | grep -q sec; then
echo "::error::No GPG secret keys found. Check that GPG_SIGNING_KEY secret is set and contains a valid ASCII-armored private key."
exit 1
fi
if gpg --list-secret-keys 2>/dev/null | grep -q expired; then
echo "::error::GPG key is expired. Generate a new key or extend the expiry and update the GPG_SIGNING_KEY org secret."
exit 1
fi
- name: Set release version
run: |
VERSION=${GITHUB_REF_NAME#v}
mvn versions:set -DnewVersion=$VERSION -DgenerateBackupPoms=false
mvn -f entitlements-client-bom/pom.xml versions:set -DnewVersion=$VERSION -DgenerateBackupPoms=false
mvn -f entitlements-client-spring-boot-starter/pom.xml versions:set -DnewVersion=$VERSION -DgenerateBackupPoms=false
mvn -f entitlements-client-spring-boot-starter/pom.xml versions:set-property -Dproperty=entitlements-client.version -DnewVersion=$VERSION -DgenerateBackupPoms=false
mvn -f entitlements-client-test/pom.xml versions:set -DnewVersion=$VERSION -DgenerateBackupPoms=false
mvn -f entitlements-client-test/pom.xml versions:set-property -Dproperty=entitlements-client.version -DnewVersion=$VERSION -DgenerateBackupPoms=false
- name: Publish SDK
run: mvn deploy --batch-mode -P release -DskipTests
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Publish BOM
run: mvn -f entitlements-client-bom/pom.xml deploy --batch-mode -P release
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Publish Spring Boot Starter
run: mvn -f entitlements-client-spring-boot-starter/pom.xml deploy --batch-mode -P release -DskipTests
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Publish Test Utilities
run: mvn -f entitlements-client-test/pom.xml deploy --batch-mode -P release -DskipTests
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}