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