Skip to content

Commit ef1b601

Browse files
committed
add pr artifact message action
1 parent febf356 commit ef1b601

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

.github/workflows/pr-artifacts.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Comment on Pull request
2+
3+
on:
4+
workflow_run:
5+
types:
6+
- completed
7+
workflows:
8+
- 'Create PR Artifacts'
9+
10+
jobs:
11+
comment:
12+
if: github.event.workflow_run.conclusion == 'success'
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Get Artifact and Pull request info
16+
env:
17+
GITHUB_TOKEN: ${{ github.token }}
18+
WORKFLOW_RUN_EVENT_OBJ: ${{ toJSON(github.event.workflow_run) }}
19+
OWNER: ${{ github.repository_owner }}
20+
REPO: ${{ github.event.repository.name }}
21+
run: |
22+
PREVIOUS_JOB_ID=$(jq -r '.id' <<< "$WORKFLOW_RUN_EVENT_OBJ")
23+
echo "Previous Job ID: $PREVIOUS_JOB_ID"
24+
echo "PREVIOUS_JOB_ID=$PREVIOUS_JOB_ID" >> "$GITHUB_ENV"
25+
26+
SUITE_ID=$(jq -r '.check_suite_id' <<< "$WORKFLOW_RUN_EVENT_OBJ")
27+
echo "Previous Suite ID: $SUITE_ID"
28+
echo "SUITE_ID=$SUITE_ID" >> "$GITHUB_ENV"
29+
30+
ARTIFACT_ID=$(gh api "/repos/$OWNER/$REPO/actions/artifacts" \
31+
--jq ".artifacts.[] |
32+
select(.workflow_run.id==${PREVIOUS_JOB_ID}) |
33+
select(.expired==false) |
34+
.id")
35+
36+
echo "Artifact ID: $ARTIFACT_ID"
37+
echo "ARTIFACT_ID=$ARTIFACT_ID" >> "$GITHUB_ENV"
38+
39+
PR_NUMBER=$(jq -r '.pull_requests[0].number' \
40+
<<< "$WORKFLOW_RUN_EVENT_OBJ")
41+
42+
echo "Pull request Number: $PR_NUMBER"
43+
echo "PR_NUMBER=$PR_NUMBER" >> "$GITHUB_ENV"
44+
45+
HEAD_SHA=$(jq -r '.pull_requests[0].head.sha' \
46+
<<< "$WORKFLOW_RUN_EVENT_OBJ")
47+
48+
echo "Head SHA: $HEAD_SHA"
49+
echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV"
50+
- name: Find Comment
51+
uses: peter-evans/find-comment@v2
52+
id: find-comment
53+
with:
54+
issue-number: ${{ env.PR_NUMBER }}
55+
comment-author: 'github-actions[bot]'
56+
- name: Update Comment
57+
env:
58+
JOB_PATH: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ env.PREVIOUS_JOB_ID }}"
59+
ARTIFACT_URL: "${{ github.server_url }}/${{ github.repository }}/suites/$SUITE_ID/artifacts/$ARTIFACT_ID"
60+
HEAD_SHA: "${{ env.HEAD_SHA }}"
61+
uses: peter-evans/create-or-update-comment@v3
62+
with:
63+
issue-number: ${{ env.PR_NUMBER }}
64+
comment-id: ${{ steps.find-comment.outputs.comment-id }}
65+
edit-mode: replace
66+
body: |-
67+
![badge]
68+
69+
Build Successful! You can find a link to the downloadable artifact below.
70+
71+
| Name | Link |
72+
| -------- | ----------------------- |
73+
| Commit | ${{ env.HEAD_SHA }} |
74+
| Logs | ${{ env.JOB_PATH }} |
75+
| Download | ${{ env.ARTIFACT_URL }} |
76+
77+
[badge]: https://img.shields.io/badge/Build_Success!-0d1117?style=for-the-badge&labelColor=3fb950&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkPSJNMjEuMDMgNS43MmEuNzUuNzUgMCAwIDEgMCAxLjA2bC0xMS41IDExLjVhLjc0Ny43NDcgMCAwIDEtMS4wNzItLjAxMmwtNS41LTUuNzVhLjc1Ljc1IDAgMSAxIDEuMDg0LTEuMDM2bDQuOTcgNS4xOTVMMTkuOTcgNS43MmEuNzUuNzUgMCAwIDEgMS4wNiAwWiI+PC9wYXRoPjwvc3ZnPg==

0 commit comments

Comments
 (0)