build(fpb-lint): linting errors as PR comments (#10618)
Co-authored-by: ImVector <59611597+LuigiImVector@users.noreply.github.com> Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>pull/10759/head
parent
2fd8f21a78
commit
ae612cf6b5
2 changed files with 73 additions and 5 deletions
@ -0,0 +1,55 @@ |
||||
name: Comment on the pull request |
||||
|
||||
on: |
||||
workflow_run: |
||||
workflows: ["free-programming-books-lint"] |
||||
types: |
||||
- completed |
||||
|
||||
jobs: |
||||
upload: |
||||
permissions: |
||||
pull-requests: write |
||||
runs-on: ubuntu-latest |
||||
if: > |
||||
${{ github.event.workflow_run.event == 'pull_request' && |
||||
github.event.workflow_run.conclusion == 'success' }} |
||||
steps: |
||||
- name: 'Download artifact' |
||||
uses: actions/github-script@v6 |
||||
with: |
||||
script: | |
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
run_id: context.payload.workflow_run.id, |
||||
}); |
||||
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { |
||||
return artifact.name == "pr" |
||||
})[0]; |
||||
let download = await github.rest.actions.downloadArtifact({ |
||||
owner: context.repo.owner, |
||||
repo: context.repo.repo, |
||||
artifact_id: matchArtifact.id, |
||||
archive_format: 'zip', |
||||
}); |
||||
let fs = require('fs'); |
||||
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr.zip`, Buffer.from(download.data)); |
||||
|
||||
- name: 'Unzip artifact' |
||||
run: unzip pr.zip |
||||
|
||||
- name: 'Comment on PR' |
||||
env: |
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
run: | |
||||
if [ -s error.log ] |
||||
then |
||||
gh pr comment $(<PRurl) -b "Linter failed, fix the error(s): |
||||
\`\`\` |
||||
$(cat error.log) |
||||
\`\`\`" |
||||
gh pr edit $(<PRurl) --add-label "linter error" |
||||
else |
||||
gh pr edit $(<PRurl) --remove-label "linter error" |
||||
fi |
Loading…
Reference in new issue