dropwizard-jobs/dropwizard-jobs

View on GitHub
.github/workflows/maven-publish-release.yml

Summary

Maintainability
Test Coverage
# 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 Publish Release

on:
  release:
    types: [created]

jobs:
  build:

    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write

    steps:
    - uses: actions/checkout@v4
    - name: Set up JDK 17
      uses: actions/setup-java@v4
      with:
        java-version: '17'
        distribution: 'temurin'
        server-id: sonatype-nexus-staging
        server-username: MAVEN_USERNAME
        server-password: MAVEN_PASSWORD

    - name: Build with Maven
      run: mvn -B package --file pom.xml

    - name: Install GPG secret key
      run: |
        # Install gpg secret key
        cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
        # Verify gpg secret key
        gpg --list-secret-keys --keyid-format LONG

    - name: Publish to Sonatype Nexus
      run: mvn --batch-mode -Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} --activate-profiles release deploy
      env:
        MAVEN_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
        MAVEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN }}