diff --git a/plugins/civmodcore-paper/.github/workflows/build.yml b/plugins/civmodcore-paper/.github/workflows/build.yml index 8a5b08ede..67b609c03 100644 --- a/plugins/civmodcore-paper/.github/workflows/build.yml +++ b/plugins/civmodcore-paper/.github/workflows/build.yml @@ -8,17 +8,26 @@ on: types: [opened, synchronize, reopened] jobs: - build: - name: Build - runs-on: ubuntu-latest + gradle_build: + name: Gradle Build + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: temurin + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' - - uses: gradle/gradle-build-action@v2 - with: - arguments: build + - name: Run Gradle Build + uses: gradle/gradle-build-action@v2 + env: + CI: true + with: + arguments: 'reobf --scan' + + - name: Upload Build Artifact + uses: actions/upload-artifact@v3 + with: + name: gradle-build + path: '**/build/libs/*' diff --git a/plugins/civmodcore-paper/.github/workflows/comment-on-pr.yaml b/plugins/civmodcore-paper/.github/workflows/comment-on-pr.yaml new file mode 100644 index 000000000..ac66404eb --- /dev/null +++ b/plugins/civmodcore-paper/.github/workflows/comment-on-pr.yaml @@ -0,0 +1,73 @@ +name: Comment on PR + +on: + workflow_run: + types: + - "completed" + workflows: + - "Artifact Upload" + +jobs: + comment-on-pr: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + + - name: Get Artifact URL & PR Info + env: + GITHUB_TOKEN: ${{ github.token }} + OWNER: ${{ github.repository_owner }} + REPO: ${{ github.event.repository.name }} + WORKFLOW_RUN_EVENT_OBJ: ${{ toJSON(github.event.workflow_run) }} + run: | + PREVIOUS_JOB_ID=$(jq -r '.id' <<< "$WORKFLOW_RUN_EVENT_OBJ") + echo "Previous Job ID: $PREVIOUS_JOB_ID" + echo "PREVIOUS_JOB_ID=$PREVIOUS_JOB_ID" >> "$GITHUB_ENV" + + ARTIFACT_URL=$(gh api "/repos/$OWNER/$REPO/actions/artifacts" \ + --jq ".artifacts.[] | + select(.workflow_run.id==${PREVIOUS_JOB_ID}) | + select(.expired==false) | + .archive_download_url") + + echo "ARTIFACT URL: $ARTIFACT_URL" + echo "ARTIFACT_URL=$ARTIFACT_URL" >> "$GITHUB_ENV" + + PR_NUMBER=$(jq -r '.pull_requests[0].number' \ + <<< "$WORKFLOW_RUN_EVENT_OBJ") + + echo "PR Number: $PR_NUMBER" + echo "PR_NUMBER=$PR_NUMBER" >> "$GITHUB_ENV" + + HEAD_SHA=$(jq -r '.pull_requests[0].head.sha' \ + <<< "$WORKFLOW_RUN_EVENT_OBJ") + + echo "Head sha: $HEAD_SHA" + echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV" + + - name: Update Comment + env: + JOB_PATH: "${{ github.server_url }}/${{ github.repository }}/actions/\ + runs/${{ env.PREVIOUS_JOB_ID }}" + HEAD_SHA: ${{ env.HEAD_SHA }} + uses: peter-evans/create-or-update-comment@v2 + with: + issue-number: ${{ env.PR_NUMBER }} + body: |- + ## Build Preview + + [![badge]]($JOB_PATH) + + You can find files attached to the below linked Workflow Run URL (Logs). + + Please note that files only stay for around 90 days! + + | Name | Link + -------------------------------------------------------------------- + | Commit | ${{ env.HEAD_SHA }} + + | Logs | ${{ env.JOB_PATH }} + + | Jar Files | ${{ env. ARTIFACT_URL }} + + [badge]: https://img.shields.io/badge/Build-Success!-3fb950?logo=github&style=for-the-badge diff --git a/plugins/civmodcore-paper/.github/workflows/publish.yml b/plugins/civmodcore-paper/.github/workflows/publish.yml index 0a5f55f34..62c0c5fda 100644 --- a/plugins/civmodcore-paper/.github/workflows/publish.yml +++ b/plugins/civmodcore-paper/.github/workflows/publish.yml @@ -6,20 +6,32 @@ on: - 'v*.*.*' jobs: - publish: - runs-on: ubuntu-latest + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: temurin + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' - - uses: gradle/gradle-build-action@v2 - with: - arguments: publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CIVMC_NEXUS_USER: ${{ secrets.CIVMC_NEXUS_USER }} - CIVMC_NEXUS_PASSWORD: ${{ secrets.CIVMC_NEXUS_PASSWORD }} \ No newline at end of file + - uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + '**/.gradle' + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Publish + run: ./gradlew publish --stacktrace + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CIVMC_NEXUS_USER: ${{ secrets.CIVMC_NEXUS_USER }} + CIVMC_NEXUS_PASSWORD: ${{ secrets.CIVMC_NEXUS_PASSWORD }} diff --git a/plugins/civmodcore-paper/build.gradle.kts b/plugins/civmodcore-paper/build.gradle.kts index 59aa4b7b2..eda18195a 100644 --- a/plugins/civmodcore-paper/build.gradle.kts +++ b/plugins/civmodcore-paper/build.gradle.kts @@ -1,7 +1,7 @@ import net.civmc.civgradle.CivGradleExtension plugins { - id("net.civmc.civgradle") version "2.+" apply false + id("net.civmc.civgradle") version "3.0.1" apply false } subprojects { diff --git a/plugins/civmodcore-paper/settings.gradle.kts b/plugins/civmodcore-paper/settings.gradle.kts index 151b25212..4ddcd3b3c 100644 --- a/plugins/civmodcore-paper/settings.gradle.kts +++ b/plugins/civmodcore-paper/settings.gradle.kts @@ -6,6 +6,10 @@ pluginManagement { } } +plugins { + id("com.gradle.enterprise") version("3.15") +} + rootProject.name = "civmodcore" include(":paper")