| 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).' |
| : '') |
| }) |