1
+ # comment_pr_diff.yml
2
+ # From https://github.com/orgs/community/discussions/51403z
3
+ name : Comment Artifact Diff files URL on PR
4
+
5
+ on :
6
+ workflow_run :
7
+ types :
8
+ - " completed"
9
+ workflows :
10
+ - " Diff"
11
+
12
+ jobs :
13
+ comment-on-pr :
14
+ if : github.event.workflow_run.conclusion == 'success'
15
+ runs-on : ubuntu-latest
16
+ steps :
17
+ - name : Test
18
+ run : |
19
+ pwd
20
+
21
+ - name : Get Artifact URL & PR Info
22
+ env :
23
+ GITHUB_TOKEN : ${{ github.token }}
24
+ OWNER : ${{ github.repository_owner }}
25
+ REPO : ${{ github.event.repository.name }}
26
+ WORKFLOW_RUN_EVENT_OBJ : ${{ toJSON(github.event.workflow_run) }}
27
+ run : |
28
+
29
+ PREVIOUS_JOB_ID=$(jq -r '.id' <<< "$WORKFLOW_RUN_EVENT_OBJ")
30
+ echo "Previous Job ID: $PREVIOUS_JOB_ID"
31
+ echo "PREVIOUS_JOB_ID=$PREVIOUS_JOB_ID" >> "$GITHUB_ENV"
32
+
33
+ ARTIFACT_URL=$(gh api "/repos/$OWNER/$REPO/actions/artifacts" \
34
+ --jq ".artifacts.[] |
35
+ select(.workflow_run.id==${PREVIOUS_JOB_ID}) |
36
+ select(.expired==false) |
37
+ .archive_download_url")
38
+
39
+ echo "ARTIFACT URL: $ARTIFACT_URL"
40
+ echo "ARTIFACT_URL=$ARTIFACT_URL" >> "$GITHUB_ENV"
41
+
42
+ PR_NUMBER=$(jq -r '.pull_requests[0].number' \
43
+ <<< "$WORKFLOW_RUN_EVENT_OBJ")
44
+
45
+ echo "PR Number: $PR_NUMBER"
46
+ echo "PR_NUMBER=$PR_NUMBER" >> "$GITHUB_ENV"
47
+
48
+ HEAD_SHA=$(jq -r '.pull_requests[0].head.sha' \
49
+ <<< "$WORKFLOW_RUN_EVENT_OBJ")
50
+
51
+ echo "Head sha: $HEAD_SHA"
52
+ echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV"
53
+
54
+ - name : Update Comment
55
+ env :
56
+ JOB_PATH : " ${{ github.server_url }}/${{ github.repository }}/actions/\
57
+ runs/${{ env.PREVIOUS_JOB_ID }}"
58
+ HEAD_SHA : ${{ env.HEAD_SHA }}
59
+ uses : peter-evans/create-or-update-comment@v2
60
+ with :
61
+ issue-number : ${{ env.PR_NUMBER }}
62
+ body : |-
63
+ ## Diff preview files are ready!
64
+
65
+ [![badge]]($JOB_PATH)
66
+
67
+ You can find files attached to the below linked Workflow Run URL (Logs).
68
+
69
+ | Name | Link
70
+ --------------------------------------------------------------------
71
+ | Commit | ${{ env.HEAD_SHA }}
72
+
73
+ | Logs | ${{ env.JOB_PATH }}
74
+
75
+ | Jar Files | ${{ env. ARTIFACT_URL }}
76
+
77
+ [badge]: https://img.shields.io/badge/Build-Success!-3fb950?logo=github&style=for-the-badge
0 commit comments