1+ # 构建完成后:部署 Surge 预览,并更新 PR 预览评论(文档 diff 见 doc-diff-comment.yml)
12name : PR 预览发布
23
34on :
78 - completed
89
910env :
10- FAILURE_BODY : |
11+ BUILD_FAILURE_BODY : |
12+ [<img height="96" alt="失败" src="https://user-images.githubusercontent.com/5378891/75333447-1e63a280-58c1-11ea-975d-235367fd1522.png">](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }})
13+ <!-- AUTO_PREVIEW_HOOK -->
14+ DEPLOY_FAILURE_BODY : |
1115 [<img height="96" alt="失败" src="https://user-images.githubusercontent.com/5378891/75333447-1e63a280-58c1-11ea-975d-235367fd1522.png">](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
1216 <!-- AUTO_PREVIEW_HOOK -->
1317
18+ permissions :
19+ pull-requests : write
20+
1421jobs :
1522 部署预览并评论 :
1623 runs-on : ubuntu-latest
1724 if : >
1825 github.event.workflow_run.event == 'pull_request' &&
1926 github.event.workflow_run.conclusion == 'success'
2027 steps :
21- - name : 下载 PR 编号
22- uses : actions/download-artifact@v4
23- with :
24- name : pr-number
25- run-id : ${{ github.event.workflow_run.id }}
26- github-token : ${{ secrets.GITHUB_TOKEN }}
27-
28- - name : 下载文档 diff 评论
28+ - name : 下载 PR 元数据
2929 uses : actions/download-artifact@v4
30- continue-on-error : true
3130 with :
32- name : preview -metadata
31+ name : pr -metadata
3332 run-id : ${{ github.event.workflow_run.id }}
3433 github-token : ${{ secrets.GITHUB_TOKEN }}
3534
@@ -52,22 +51,18 @@ jobs:
5251 npx surge --project ./tdesign-flutter-web --domain $DEPLOY_DOMAIN --token ${{ secrets.TDESIGN_SURGE_TOKEN }}
5352 echo "url=$DEPLOY_DOMAIN" >> $GITHUB_OUTPUT
5453
55- - name : 组装 PR 评论正文
54+ - name : 组装 PR 预览评论正文
5655 env :
5756 PREVIEW_URL : ${{ steps.deploy.outputs.url }}
5857 run : |
59- printf '%s\n' \
60- "<a href=\"${PREVIEW_URL}\"><img height=\"96\" alt=\"完成\" src=\"https://user-images.githubusercontent.com/15634204/150816437-9f5bb788-cd67-4cbc-9897-b82d74e9aa65.png\" /></a>" \
61- '' \
62- "**预览地址**: [${{ PREVIEW_URL}](${PREVIEW_URL})" \
63- '' > pr-comment.md
64- if [ -f doc-diff-comment.md ]; then
65- echo "---" >> pr-comment.md
66- echo "" >> pr-comment.md
67- cat doc-diff-comment.md >> pr-comment.md
68- fi
69- echo "" >> pr-comment.md
70- echo "<!-- AUTO_PREVIEW_HOOK -->" >> pr-comment.md
58+ {
59+ printf '%s\n' \
60+ "<a href=\"${PREVIEW_URL}\"><img height=\"96\" alt=\"完成\" src=\"https://user-images.githubusercontent.com/15634204/150816437-9f5bb788-cd67-4cbc-9897-b82d74e9aa65.png\" /></a>" \
61+ '' \
62+ "**预览地址**: [${PREVIEW_URL}](${PREVIEW_URL})" \
63+ '' \
64+ '<!-- AUTO_PREVIEW_HOOK -->'
65+ } > pr-comment.md
7166
7267 - name : 更新 PR 预览评论
7368 uses : TDesignOteam/workflows/actions/maintain-one-comment@main
@@ -78,11 +73,11 @@ jobs:
7873 body-include : " <!-- AUTO_PREVIEW_HOOK -->"
7974
8075 - name : 部署失败时标记 PR 评论
81- if : ${{ failure() }}
76+ if : failure()
8277 uses : TDesignOteam/workflows/actions/maintain-one-comment@main
8378 with :
8479 token : ${{ secrets.GITHUB_TOKEN }}
85- body : ${{ env.FAILURE_BODY }}
80+ body : ${{ env.DEPLOY_FAILURE_BODY }}
8681 number : ${{ steps.pr.outputs.number }}
8782 body-include : " <!-- AUTO_PREVIEW_HOOK -->"
8883
@@ -92,21 +87,16 @@ jobs:
9287 github.event.workflow_run.event == 'pull_request' &&
9388 github.event.workflow_run.conclusion == 'failure'
9489 steps :
95- - name : 下载 PR 编号
96- uses : actions/download-artifact@v4
97- with :
98- name : pr-number
99- run-id : ${{ github.event.workflow_run.id }}
100- github-token : ${{ secrets.GITHUB_TOKEN }}
101-
10290 - name : 解析 PR 编号
10391 id : pr
104- run : echo "number=$(cat pr-number.txt)" >> $GITHUB_OUTPUT
92+ run : |
93+ PR_URL="${{ github.event.workflow_run.pull_requests[0].url }}"
94+ echo "number=${PR_URL##*/}" >> $GITHUB_OUTPUT
10595
10696 - name : 更新 PR 失败评论
10797 uses : TDesignOteam/workflows/actions/maintain-one-comment@main
10898 with :
10999 token : ${{ secrets.GITHUB_TOKEN }}
110- body : ${{ env.FAILURE_BODY }}
100+ body : ${{ env.BUILD_FAILURE_BODY }}
111101 number : ${{ steps.pr.outputs.number }}
112102 body-include : " <!-- AUTO_PREVIEW_HOOK -->"
0 commit comments