# 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: Publish Snapshot on: workflow_dispatch: push: branches: [ dev ] paths: - src/** - pom.xml pull_request: branches: [ dev ] paths: - src/** - pom.xml jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Set up Apache Maven Central uses: actions/setup-java@v1 with: java-version: 1.8 server-id: sonatype-nexus-snapshots server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-passphrase: MAVEN_GPG_PASSWORD gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - name: Cache m2 package uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: get current project version to set env.VERSION run: echo "VERSION=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout`" >> $GITHUB_ENV - name: set snapshot version if: ${{ !endsWith( env.VERSION , '-SNAPSHOT') }} run: mvn versions:set -DnewVersion=${{ env.VERSION }}-SNAPSHOT - name: deploy snapshot to oss repository run: mvn clean deploy -P release env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} MAVEN_GPG_PASSWORD: ${{ secrets.MAVEN_GPG_PASSWORD }}