aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authortimoreo22 <timo.oreo34@gmail.com>2022-03-29 11:25:43 +0200
committerGitHub <noreply@github.com>2022-03-29 11:25:43 +0200
commitbac67800be1720409bec8ed026feb227fb38ce42 (patch)
treeb770a751d99e86a01dd04130067bc936a1fc0de6 /.github/workflows
parent306df9e17f5c26832ed18e3d618c908c0aba3193 (diff)
parent17d200dc88d34df6ec27afa93c19798666d8bf7d (diff)
downloadPrismLauncher-bac67800be1720409bec8ed026feb227fb38ce42.tar.gz
PrismLauncher-bac67800be1720409bec8ed026feb227fb38ce42.tar.bz2
PrismLauncher-bac67800be1720409bec8ed026feb227fb38ce42.zip
Merge pull request #312 from Scrumplex/add-nightly.link
Add nightly.link comments
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/pr-comment.yml61
1 files changed, 61 insertions, 0 deletions
diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml
new file mode 100644
index 00000000..7e8e4d99
--- /dev/null
+++ b/.github/workflows/pr-comment.yml
@@ -0,0 +1,61 @@
+name: Comment on pull request
+on:
+ workflow_run:
+ workflows: ['Test workflow with upload']
+ 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@v5
+ with:
+ # This snippet is public-domain, taken from
+ # https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml
+ script: |
+ async function upsertComment(owner, repo, issue_number, purpose, body) {
+ const {data: comments} = await github.rest.issues.listComments(
+ {owner, repo, issue_number});
+
+ const marker = `<!-- bot: ${purpose} -->`;
+ body = marker + "\n" + body;
+
+ const existing = comments.filter((c) => c.body.includes(marker));
+ if (existing.length > 0) {
+ const last = existing[existing.length - 1];
+ core.info(`Updating comment ${last.id}`);
+ await github.rest.issues.updateComment({
+ owner, repo,
+ body,
+ comment_id: last.id,
+ });
+ } else {
+ core.info(`Creating a comment in issue / PR #${issue_number}`);
+ await github.rest.issues.createComment({issue_number, body, owner, repo});
+ }
+ }
+
+ const {owner, repo} = context.repo;
+ const run_id = ${{github.event.workflow_run.id}};
+
+ const pull_requests = ${{ toJSON(github.event.workflow_run.pull_requests) }};
+ if (!pull_requests.length) {
+ return core.error("This workflow doesn't match any pull requests!");
+ }
+
+ const artifacts = await github.paginate(
+ 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`;
+ for (const art of artifacts) {
+ body += `\n* [${art.name}.zip](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
+ }
+
+ core.info("Review thread message body:", body);
+
+ for (const pr of pull_requests) {
+ await upsertComment(owner, repo, pr.number,
+ "nightly-link", body);
+ }