From 16a98f0e8ecc36dd957f966805eb45e3e0e1c121 Mon Sep 17 00:00:00 2001 From: Jakob Krantz Date: Tue, 5 Nov 2024 22:18:06 +0100 Subject: [PATCH] ci: Add comment to PR with link do the Kidiff of the changes. --- .github/workflows/comment_pr_diff.yml | 77 +++++++++++++++++++++++++++ .github/workflows/production.yml | 1 + 2 files changed, 78 insertions(+) create mode 100644 .github/workflows/comment_pr_diff.yml diff --git a/.github/workflows/comment_pr_diff.yml b/.github/workflows/comment_pr_diff.yml new file mode 100644 index 0000000..16c6d4b --- /dev/null +++ b/.github/workflows/comment_pr_diff.yml @@ -0,0 +1,77 @@ +# comment_pr_diff.yml +# From https://github.com/orgs/community/discussions/51403z +name: Comment Artifact Diff files URL on PR + +on: + workflow_run: + types: + - "completed" + workflows: + - "Diff" + +jobs: + comment-on-pr: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + - name: Test + run: | + pwd + + - 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: |- + ## Diff preview files are ready! + + [![badge]]($JOB_PATH) + + You can find files attached to the below linked Workflow Run URL (Logs). + + | 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 \ No newline at end of file diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index 7b06af8..86828f3 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -6,6 +6,7 @@ on: types: - closed - pull_request + - push jobs: build: