From 53709ae33cbfb98dedf2d1c4f29d03e7410fb85f Mon Sep 17 00:00:00 2001 From: post-svejk Date: Fri, 8 Aug 2025 20:42:26 +0200 Subject: [PATCH] Upgrade deployment to Maven Central to use new plugin from Sonatype Upgrade most plugins to latest release. Rewrite the publishing job to deploy directly to Maven Central (was: using obsolete GitHub action) with new plugin configured in the parent POM and using more recent support in setup-java for deployment settings in Maven. --- .github/workflows/build.yml | 65 ++++++++++++++++++++----------------- .gitignore | 1 + pom.xml | 22 ++++++------- 3 files changed, 47 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0240749..fd3d421 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,9 +12,9 @@ jobs: env: MAVEN_ARGS: --show-version --no-transfer-progress steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up java - uses: actions/setup-java@v4 + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: ${{ matrix.java }} distribution: temurin @@ -22,36 +22,41 @@ jobs: - name: Build with Maven run: mvn verify - - publishing_parameters: - name: Publishing parameters + publish: + needs: build + name: Publish ${{ github.ref_name }} runs-on: ubuntu-latest - outputs: - is_release: ${{ steps.version.outputs.is_release }} - version: ${{ steps.version.outputs.version }} steps: - - name: Determine version - id: version + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Set up Java + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 + with: + distribution: temurin + java-version: '21' + cache: "maven" + gpg-private-key: ${{ secrets.MAVEN_CENTRAL_SIGNING_KEY_PRIVATE }} + server-id: central + server-username: MAVEN_CENTRAL_TOKEN_USERNAME + server-password: MAVEN_CENTRAL_TOKEN_PASSWORD + gpg-passphrase: MAVEN_GPG_PASSPHRASE + - name: Activate Artifact Signing and Version Suffix run: | - if [[ $GITHUB_REF == *"tags"* ]]; then - is_release=true - version=${GITHUB_REF#refs/tags/} + profiles="build-sources-and-javadoc,deploy-to-maven-central" + if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then + profiles="$profiles,sign-artifacts" + version_suffix="" else - is_release=false - version=${GITHUB_REF#refs/heads/}-SNAPSHOT + version_suffix="-SNAPSHOT" fi - echo "is_release=${is_release//\//-}" >> $GITHUB_OUTPUT - echo "version=${version//\//-}" >> $GITHUB_OUTPUT - - - publish: - needs: [build, publishing_parameters] - name: Publish ${{ needs.publishing_parameters.outputs.version }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: digipost/action-maven-publish@v1 - with: - sonatype_secrets: ${{ secrets.sonatype_secrets }} - release_version: ${{ needs.publishing_parameters.outputs.version }} - perform_release: ${{ needs.publishing_parameters.outputs.is_release }} + echo "MAVEN_PROFILES=$profiles" >> $GITHUB_ENV + version="${GITHUB_REF_NAME}${version_suffix}" + echo "VERSION=$version" >> $GITHUB_ENV + - name: Set Maven version + run: mvn --batch-mode --no-transfer-progress versions:set -DnewVersion=${VERSION} + - name: Build and deploy to Maven Central + run: | + mvn --batch-mode --no-transfer-progress --activate-profiles ${MAVEN_PROFILES} deploy + env: + MAVEN_CENTRAL_TOKEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + MAVEN_CENTRAL_TOKEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_CENTRAL_SIGNING_KEY_PASSPHRASE }} diff --git a/.gitignore b/.gitignore index 7c1e4f1..db9f9b2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ target *.iml .idea .sonatype +.vscode/settings.json diff --git a/pom.xml b/pom.xml index 6c9fcf9..fb418e7 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ no.digipost digipost-open-super-pom - 13 + 14 digg @@ -167,7 +167,7 @@ maven-enforcer-plugin - 3.5.0 + 3.6.1 @@ -190,7 +190,7 @@ maven-compiler-plugin - 3.13.0 + 3.14.0 -Xlint @@ -199,23 +199,23 @@ maven-surefire-plugin - 3.5.0 + 3.5.3 maven-deploy-plugin - 3.1.3 + 3.1.4 maven-clean-plugin - 3.4.0 + 3.5.0 maven-dependency-plugin - 3.8.0 + 3.8.1 maven-install-plugin - 3.1.3 + 3.1.4 maven-resources-plugin @@ -223,7 +223,7 @@ maven-javadoc-plugin - 3.10.0 + 3.11.2 @@ -241,7 +241,7 @@ org.codehaus.mojo versions-maven-plugin - 2.17.1 + 2.18.0 false @@ -249,7 +249,7 @@ com.github.siom79.japicmp japicmp-maven-plugin - 0.23.0 + 0.23.1