name: Publish package to the Maven Central Repository
on:
  release:
    types:
      - published
jobs:
  publish:
    if: ${{ !github.event.release.prerelease && github.event.release.target_commitish == 'main' }}
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '11'

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

    - uses: actions/checkout@v2
    - name: Set up Apache Maven Central
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '11'
        server-id: ossrh
        server-username: MAVEN_USERNAME
        server-password: MAVEN_CENTRAL_TOKEN
        gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
        gpg-passphrase: MAVEN_GPG_PASSPHRASE

    - name: Publish to Apache Maven Central
      run: mvn deploy
      env:
        MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
        MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
        MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

name: Publish package to the Maven Central Repository
on:
  release:
    types:
      - published
jobs:
  publish:
    if: ${{ !github.event.release.prerelease && github.event.release.target_commitish == 'main' }}
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Apache Maven Central
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '11'
        server-id: ossrh
        server-username: MAVEN_USERNAME
        server-password: MAVEN_CENTRAL_TOKEN
        gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
        gpg-passphrase: MAVEN_GPG_PASSPHRASE

    - name: Get Maven project version
      run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV

    - name: Set Maven project version
      run: mvn versions:set -DnewVersion=$RELEASE_VERSION

    - name: Publish to Apache Maven Central
      run: mvn deploy
      env:
        MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
        MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
        MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

Use the tag to dynamically release versions
Use the tag to dynamically release versions
