mirror of https://github.com/yewstack/yew
93 lines
2.6 KiB
YAML
93 lines
2.6 KiB
YAML
name: Post Comment for Benchmark - core
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ["Benchmark - core"]
|
|
types:
|
|
- completed
|
|
|
|
jobs:
|
|
post-benchmark-core:
|
|
name: Post Benchmark Comment on Pull Request
|
|
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Download Repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download Artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
run-id: ${{ github.event.workflow_run.id }}
|
|
name: benchmark-core
|
|
path: benchmark-core/
|
|
|
|
- name: Make pull request comment
|
|
run: |
|
|
cat - >>comment.txt <<EOF
|
|
### Benchmark - core
|
|
#### Yew Master
|
|
\`\`\`
|
|
EOF
|
|
cat benchmark-core/yew-master/tools/output.log >>comment.txt
|
|
cat - >>comment.txt <<EOF
|
|
\`\`\`
|
|
#### Pull Request
|
|
\`\`\`
|
|
EOF
|
|
cat benchmark-core/current-pr/tools/output.log >>comment.txt
|
|
cat - >>comment.txt <<EOF
|
|
\`\`\`
|
|
EOF
|
|
|
|
- name: Read Pull Request ID
|
|
run: echo "PR_NUMBER=$(cat benchmark-core/.PR_NUMBER)" >> $GITHUB_ENV
|
|
|
|
- name: Post Comment
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
const fs = require('fs');
|
|
|
|
const commentInfo = {
|
|
...context.repo,
|
|
issue_number: ${{ env.PR_NUMBER }},
|
|
};
|
|
|
|
const comment = {
|
|
...commentInfo,
|
|
body: fs.readFileSync("comment.txt", 'utf-8'),
|
|
};
|
|
|
|
function isCommentByBot(comment) {
|
|
return comment.user.type === "Bot" && comment.body.includes("### Benchmark - core");
|
|
}
|
|
|
|
let commentId = null;
|
|
const comments = (await github.rest.issues.listComments(commentInfo)).data;
|
|
for (let i = comments.length; i--; ) {
|
|
const c = comments[i];
|
|
if (isCommentByBot(c)) {
|
|
commentId = c.id;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (commentId) {
|
|
try {
|
|
await github.rest.issues.updateComment({
|
|
...context.repo,
|
|
comment_id: commentId,
|
|
body: comment.body,
|
|
});
|
|
} catch (e) {
|
|
commentId = null;
|
|
}
|
|
}
|
|
|
|
if (!commentId) {
|
|
await github.rest.issues.createComment(comment);
|
|
}
|