mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-19 20:08:43 +08:00
37e758cbd0
* refactor: adjust failed build * feat: approve check * chore: checkbox accept * chore: update check * chore: clean up * chore: typo
65 lines
1.9 KiB
YAML
65 lines
1.9 KiB
YAML
# Check the report passed or developer confirmed the diff
|
|
|
|
name: 🤖 Visual Regression Diff Approver
|
|
|
|
# on comment event
|
|
on:
|
|
issue_comment:
|
|
types: [created, edited, deleted]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
rebase:
|
|
permissions:
|
|
pull-requests: read
|
|
name: Check Virtual Regression Approval
|
|
if: github.event.issue.pull_request != ''
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Check all the comments if contains `VISUAL_DIFF_SUCCESS` or `VISUAL_DIFF_FAILED`
|
|
# Check if member of repo comment `Pass Visual Diff`
|
|
# Return type: `success` or `failed` or `waiting`
|
|
- name: Statistic Visual Diff Approval
|
|
id: check_approval
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const { data: comments } = await github.rest.issues.listComments({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
});
|
|
|
|
let hasDiffSuccess = false;
|
|
let hasDiffFailed = false;
|
|
let hasMemberApprove = false;
|
|
|
|
for (const comment of comments) {
|
|
if (comment.body.includes('VISUAL_DIFF_SUCCESS')) {
|
|
hasDiffSuccess = true;
|
|
}
|
|
if (comment.body.includes('VISUAL_DIFF_FAILED')) {
|
|
hasDiffFailed = true;
|
|
}
|
|
if (comment.body.includes('- [x] Visual diff is acceptable')) {
|
|
hasMemberApprove = true;
|
|
}
|
|
}
|
|
|
|
if (hasDiffSuccess || (hasDiffFailed && hasMemberApprove)) {
|
|
return 'success';
|
|
} else if (hasDiffFailed) {
|
|
return 'failed';
|
|
} else {
|
|
return 'waiting';
|
|
}
|
|
|
|
# Console need approve message and throw failure if the result is `failed`
|
|
- name: Fail if Visual Diff Failed
|
|
if: steps.check_approval.outputs.result == 'failed'
|
|
run: |
|
|
echo "Visual Diff Failed, please check the diff and approve it."
|
|
exit 1
|