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: Publish core javadoc if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} uses: cpina/github-action-push-to-another-repository@main env: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} with: source-directory: 'worldedit-core/build/docs/javadoc' destination-github-username: 'IntellectualSites' destination-repository-name: 'fastasyncworldedit-javadocs' user-email: ${{ secrets.USER_EMAIL }} target-branch: main target-directory: worldedit-core - name: Publish bukkit javadoc if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} uses: cpina/github-action-push-to-another-repository@main env: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} with: source-directory: 'worldedit-bukkit/build/docs/javadoc' destination-github-username: 'IntellectualSites' destination-repository-name: 'fastasyncworldedit-javadocs' user-email: ${{ secrets.USER_EMAIL }} target-branch: main target-directory: worldedit-bukkit - name: Archive Artifacts uses: actions/upload-artifact@v3 with: name: FastAsyncWorldEdit-Bukkit-SNAPSHOT path: worldedit-bukkit/build/libs/FastAsyncWorldEdit-Bukkit-*.jar - name: Publish to Modrinth if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} run: ./gradlew modrinth env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} - name : Publish to CurseForge if : ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} uses: itsmeow/curseforge-upload@v3 with: file_path: worldedit-bukkit/build/libs/FastAsyncWorldEdit-Bukkit-${{ env.VERSION }}.jar # https://minecraft.curseforge.com/api/game/versions?token=redacted # gameVersionTypeID: 1 game_versions: "8849,8897,9016,9190,9261" project_id: 103525 game_endpoint: minecraft token: ${{ secrets.CURSEFORGE_TOKEN }} display_name: FastAsyncWorldEdit ${{ env.VERSION }} release_type: release changelog: "Click here to view changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/${{ github.event.release.tag_name }}" changelog_type: markdown