From c04afb2226cf15ca1fb373258c60e7179a2592ed Mon Sep 17 00:00:00 2001 From: AngrySoundTech Date: Sun, 10 Dec 2023 15:27:44 -0500 Subject: [PATCH] Use local workfows --- .../.github/workflows/build.yml | 28 +++++-- .../.github/workflows/comment-on-pr.yaml | 73 +++++++++++++++++++ .../.github/workflows/publish.yml | 42 +++++++---- 3 files changed, 123 insertions(+), 20 deletions(-) create mode 100644 plugins/civmodcore-paper/.github/workflows/comment-on-pr.yaml diff --git a/plugins/civmodcore-paper/.github/workflows/build.yml b/plugins/civmodcore-paper/.github/workflows/build.yml index 46b76bc10..d3c792641 100644 --- a/plugins/civmodcore-paper/.github/workflows/build.yml +++ b/plugins/civmodcore-paper/.github/workflows/build.yml @@ -8,8 +8,26 @@ on: types: [opened, synchronize, reopened] jobs: - build: - uses: civmc/.github/.github/workflows/gradle_build.yml@master - with: - gradle_task: reobf - secrets: inherit + gradle_build: + name: Gradle Build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v3 + with: + java-version: '${{ inputs.java_version }}' + distribution: '${{ inputs.java_distribution }}' + + - name: Run Gradle Build + uses: gradle/gradle-build-action@v2 + env: + CI: true + with: + arguments: '${{ inputs.gradle_task }} --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 }}