diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:36:56 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:36:56 +0000 |
commit | 51de1d8436100f725f3576aefa24a2bd2057bc28 (patch) | |
tree | c6d1d5264b6d40a8d7ca34129f36b7d61e188af3 /.github/workflows/comment.yml | |
parent | Initial commit. (diff) | |
download | mpv-51de1d8436100f725f3576aefa24a2bd2057bc28.tar.xz mpv-51de1d8436100f725f3576aefa24a2bd2057bc28.zip |
Adding upstream version 0.37.0.upstream/0.37.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '.github/workflows/comment.yml')
-rw-r--r-- | .github/workflows/comment.yml | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml new file mode 100644 index 0000000..7f9603a --- /dev/null +++ b/.github/workflows/comment.yml @@ -0,0 +1,58 @@ +name: comment + +on: + workflow_run: + workflows: ["build"] + types: [completed] + +jobs: + pr_comment: + if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v6 + with: + script: | + const { owner, repo } = context.repo; + const run_id = ${{ github.event.workflow_run.id }}; + const pull_head_sha = '${{github.event.workflow_run.head_sha}}'; + + const issue_number = await(async () => { + const pulls = await github.rest.pulls.list({ owner, repo }); + for await (const { data } of github.paginate.iterator(pulls)) { + for (const pull of data) { + if (pull.head.sha === pull_head_sha) { + return pull.number; + } + } + } + })(); + if (issue_number) { + core.info(`Using pull request ${issue_number}`); + } else { + return core.error(`No matching pull request found`); + } + + const { data: { artifacts } } = await github.rest.actions.listWorkflowRunArtifacts({ owner, repo, run_id }); + if (!artifacts.length) { + return core.error(`No artifacts found`); + } + + let body = `Download the artifacts for this pull request:\n\n<details><summary>Windows</summary>\n`; + for (const art of artifacts) { + const art_link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip`; + if (art.name.includes('w64')) { + body += `\n* [${art.name}](${art_link})`; + } + } + body += `\n</details>`; + + const { data: comments } = await github.rest.issues.listComments({ repo, owner, issue_number }); + const existing_comment = comments.find((c) => c.user.login === 'github-actions[bot]'); + if (existing_comment) { + core.info(`Updating comment ${existing_comment.id}`); + await github.rest.issues.updateComment({ repo, owner, comment_id: existing_comment.id, body }); + } else { + core.info(`Creating a comment`); + await github.rest.issues.createComment({ repo, owner, issue_number, body }); + } |