GnuComment #10194
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GnuComment | |
on: | |
workflow_run: | |
workflows: ["GnuTests"] | |
types: | |
- completed # zizmor: ignore[dangerous-triggers] | |
permissions: {} | |
jobs: | |
post-comment: | |
permissions: | |
actions: read # to list workflow runs artifacts | |
pull-requests: write # to comment on pr | |
runs-on: ubuntu-latest | |
if: > | |
github.event.workflow_run.event == 'pull_request' | |
steps: | |
- name: 'Download artifact' | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
// List all artifacts from GnuTests | |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
run_id: ${{ github.event.workflow_run.id }}, | |
}); | |
// Download the "comment" artifact, which contains a PR number (NR) and result.txt | |
var matchArtifact = artifacts.data.artifacts.filter((artifact) => { | |
return artifact.name == "comment" | |
})[0]; | |
var download = await github.rest.actions.downloadArtifact({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
artifact_id: matchArtifact.id, | |
archive_format: 'zip', | |
}); | |
var fs = require('fs'); | |
fs.writeFileSync('${{ github.workspace }}/comment.zip', Buffer.from(download.data)); | |
- run: unzip comment.zip | |
- name: 'Comment on PR' | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
var fs = require('fs'); | |
var issue_number = Number(fs.readFileSync('./NR')); | |
var content = fs.readFileSync('./result.txt'); | |
if (content.toString().trim().length > 7) { // 7 because we have backquote + \n | |
await github.rest.issues.createComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: issue_number, | |
body: 'GNU testsuite comparison:\n```\n' + content + '```' | |
}); | |
} |