65 lines
1.9 KiB
YAML
65 lines
1.9 KiB
YAML
|
name: Code size comment
|
||
|
|
||
|
on:
|
||
|
workflow_run:
|
||
|
workflows: [Check code size]
|
||
|
types: [completed]
|
||
|
|
||
|
jobs:
|
||
|
comment:
|
||
|
runs-on: ubuntu-20.04
|
||
|
steps:
|
||
|
- name: 'Download artifact'
|
||
|
id: download-artifact
|
||
|
uses: actions/github-script@v6
|
||
|
with:
|
||
|
script: |
|
||
|
const fs = require('fs');
|
||
|
|
||
|
const allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
run_id: context.payload.workflow_run.id,
|
||
|
});
|
||
|
|
||
|
const matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
|
||
|
return artifact.name == "code-size-report"
|
||
|
});
|
||
|
|
||
|
if (matchArtifact.length === 0) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
const download = await github.rest.actions.downloadArtifact({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
artifact_id: matchArtifact[0].id,
|
||
|
archive_format: 'zip',
|
||
|
});
|
||
|
|
||
|
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/code-size-report.zip`, Buffer.from(download.data));
|
||
|
|
||
|
return true;
|
||
|
- name: 'Unzip artifact'
|
||
|
if: steps.download-artifact.outputs.result
|
||
|
run: unzip code-size-report.zip
|
||
|
- name: Post comment to pull request
|
||
|
if: steps.download-artifact.outputs.result
|
||
|
uses: actions/github-script@v6
|
||
|
with:
|
||
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||
|
script: |
|
||
|
const fs = require('fs');
|
||
|
|
||
|
github.rest.issues.createComment({
|
||
|
issue_number: Number(fs.readFileSync('pr_number')),
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
body: `Code size report:
|
||
|
|
||
|
\`\`\`
|
||
|
${fs.readFileSync('diff')}
|
||
|
\`\`\`
|
||
|
`,
|
||
|
});
|