Skip to content

Commit 374ccc5

Browse files
committed
add pr artifact message action
1 parent 1b73f34 commit 374ccc5

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

.github/workflows/autobuild.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,24 @@ jobs:
7272

7373
- name: Build release
7474
run: cd /home/runner/work/fujinet-firmware/fujinet-firmware && /usr/bin/bash ./build.sh -z -l /home/runner/work/fujinet-firmware/fujinet-firmware/.github/workflows/platformio.release-${{ matrix.target-platform }}.ini -i /home/runner/work/fujinet-firmware/fujinet-firmware/platformio-generated.ini
75+
76+
- name: Upload releases
77+
if: ${{ github.event_name == 'pull_request' }}
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: fujinet-${{ matrix.target-platform }}.zip
81+
path: ./firmware/*.zip
82+
compression-level: 0
83+
84+
link:
85+
if: ${{ github.event_name == 'pull_request' }}
86+
needs: tagged-release
87+
runs-on: ubuntu-latest
88+
89+
permissions:
90+
contents: write # for commenting on your commit
91+
pull-requests: write # for commenting on your pr
92+
steps:
93+
- uses: beni69/artifact-link@v1
94+
with:
95+
token: ${{ github.token }}

.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+
- 'FujiNet CI'
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)