# 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: push: branches: [ dev ] paths: - src/** - pom.xml jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.2.0 - name: Set up Java and Maven uses: actions/setup-java@v2 with: java-version: '8' distribution: 'adopt' - name: Cache m2 package uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - run: mvn test publish: needs: test if: ${{ success() }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Java and Maven uses: actions/setup-java@v2 with: java-version: '8' distribution: 'adopt' 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 -B deploy -P release -DskipTests env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} MAVEN_GPG_PASSWORD: ${{ secrets.MAVEN_GPG_PASSWORD }}