76 lines
2.7 KiB
YAML
76 lines
2.7 KiB
YAML
|
name: Comment Check Amalgamation
|
||
|
on:
|
||
|
workflow_run:
|
||
|
workflows: ["Check amalgamation"]
|
||
|
types:
|
||
|
- completed
|
||
|
|
||
|
permissions: {}
|
||
|
|
||
|
jobs:
|
||
|
comment:
|
||
|
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
||
|
runs-on: ubuntu-latest
|
||
|
permissions:
|
||
|
contents: read
|
||
|
actions: read
|
||
|
issues: read
|
||
|
pull-requests: write
|
||
|
steps:
|
||
|
- name: 'Download artifact'
|
||
|
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0
|
||
|
with:
|
||
|
script: |
|
||
|
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
run_id: ${{github.event.workflow_run.id }},
|
||
|
});
|
||
|
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
|
||
|
return artifact.name == "pr"
|
||
|
})[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}}/pr.zip', Buffer.from(download.data));
|
||
|
- run: unzip pr.zip
|
||
|
|
||
|
- name: 'Comment on PR'
|
||
|
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0
|
||
|
with:
|
||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
script: |
|
||
|
var fs = require('fs');
|
||
|
const author = fs.readFileSync('./author')
|
||
|
const issue_number = Number(fs.readFileSync('./number'));
|
||
|
const opts = github.rest.issues.listForRepo.endpoint.merge({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
creator: author,
|
||
|
state: 'all'
|
||
|
})
|
||
|
let first = true
|
||
|
const issues = await github.paginate(opts)
|
||
|
for (const issue of issues) {
|
||
|
if (issue.number === issue_number) {
|
||
|
continue
|
||
|
}
|
||
|
if (issue.pull_request) {
|
||
|
first = false
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
await github.rest.issues.createComment({
|
||
|
issue_number: issue_number,
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
body: '## 🔴 Amalgamation check failed! 🔴\nThe source code has not been amalgamated.'
|
||
|
+ (first ? ' @' + author + ' Please read and follow the [Contribution Guidelines]'
|
||
|
+ '(https://github.com/nlohmann/json/blob/develop/.github/CONTRIBUTING.md#files-to-change).'
|
||
|
: '')
|
||
|
})
|