name: build on: [pull_request, push] jobs: build: if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }} runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 - name : Validate Gradle Wrapper uses : gradle/wrapper-validation-action@v1 - name: Setup Java uses: actions/setup-java@v3 with: distribution: temurin cache: gradle java-version: 17 - name: Clean Build run: ./gradlew clean build --no-daemon - name: Determine release status if: ${{ runner.os == 'Linux' }} run: | if [ "$(./gradlew properties | awk '/^version:/ { print $2; }' | grep '\-SNAPSHOT')" ]; then echo "STATUS=snapshot" >> $GITHUB_ENV else echo "STATUS=release" >> $GITHUB_ENV fi - name: Publish Release if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository env: ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }} ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }} - name: Publish Snapshot if: ${{ runner.os == 'Linux' && env.STATUS != 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} run: ./gradlew publishToSonatype env: ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} - name: Archive Artifacts uses: actions/upload-artifact@v3 with: name: FastAsyncWorldEdit-Bukkit-SNAPSHOT path: worldedit-bukkit/build/libs/FastAsyncWorldEdit-Bukkit-*.jar