diff --git a/.github/workflows/comment-docs-download.yml b/.github/workflows/comment-docs-download.yml index 2970d570..09578965 100644 --- a/.github/workflows/comment-docs-download.yml +++ b/.github/workflows/comment-docs-download.yml @@ -9,7 +9,7 @@ jobs: if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: script: | async function insertUpdateComment(owner, repo, issue_number, purpose, body) { @@ -35,11 +35,20 @@ jobs: 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!"); + + // Find the PR with the right sha, see https://github.com/orgs/community/discussions/25220 + const response = await github.rest.search.issuesAndPullRequests({ + q: 'repo:${{ github.repository }} is:pr sha:${{ github.event.workflow_run.head_sha }}', + per_page: 1, + }) + const items = response.data.items + if (items.length < 1) { + return core.error("No matching pull requests found"); } + const pullRequestNumber = items[0].number + console.info("Pull request number is", pullRequestNumber) + // get the list of artifacts const artifacts = await github.paginate( github.rest.actions.listWorkflowRunArtifacts, {owner, repo, run_id} ); @@ -48,15 +57,18 @@ jobs: return core.error(`No artifacts found`); } - if (artifacts.length !== 1) { - return core.error(`more than one artifact found`); - } - const link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${artifacts[0].id}.zip` + for (const artifact of artifacts) { + if (artifact.name == "documentation") { + const link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${artifact.id}.zip` + + let body = `Here is the build version of the cookbook in this pull request: [documentation.zip](${link}), `; + body += 'you can view it locally by unzipping `documentation.zip` and open the `index.html` with your favorite browser.'; - let body = `Here is the build version of the cookbook in this pull request: [documentation.zip](${link}), `; - body += 'you can view it locally by unzipping `documentation.zip` and open the `index.html` with your favorite browser.'; + core.info("Review thread message body:", body); + await insertUpdateComment(owner, repo, pullRequestNumber, "link-to-documentation", body); - core.info("Review thread message body:", body); - for (const pr of pull_requests) { - await insertUpdateComment(owner, repo, pr.number, "link-to-wheels", body); + return; + } } + + return core.error(`failed to find "documentation" artifact`);