Comment on pull request #3658
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: Comment on pull request | |
on: | |
workflow_run: | |
workflows: ["Build nightlies"] | |
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/setup-node@v2 | |
- run: npm install axios | |
- uses: actions/github-script@v6 | |
with: | |
# This snippet is public-domain, taken from | |
# https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml | |
script: | | |
const axios = require('axios'); | |
const {owner, repo} = context.repo; | |
const run_id = ${{github.event.workflow_run.id}}; | |
const pull_head_sha = '${{github.event.workflow_run.head_sha}}'; | |
const pull_user_id = ${{github.event.sender.id}}; | |
const issue_number = await (async () => { | |
const pulls = await github.rest.pulls.list({owner, repo}); | |
for (const pull of pulls.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 = `🚀 Thanks for the pull request!\n\nHere are the current build files for testing:\n\n`; | |
for (const art of artifacts) { | |
body += `\n* [${art.name}.zip](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`; | |
} | |
body += `\n\nDownload and unzip the file for your browser. Refer to the [readme](https://github.com/getAlby/lightning-browser-extension#-load-extension-into-browser) for detailed install instructions.`; | |
body += `\n\nDon't forget: **keep earning sats!**\n`; | |
const {data: comments} = await github.rest.issues.listComments({repo, owner, issue_number}); | |
const existing_comment = comments.find((c) => c.user.login === 'github-actions[bot]' && c.body.match(/current build files/) ); | |
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}); | |
} |