From 04b3d2328c5ac33a9422b43a83d903c5d7004570 Mon Sep 17 00:00:00 2001 From: Daniel Azuma Date: Mon, 2 Nov 2020 21:16:35 +0000 Subject: [PATCH] chore: Retry labeling release PRs --- .github/workflows/release-please.yml | 90 +++++++++++++++------------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 5224e71c9..badfd4adc 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -27,47 +27,51 @@ jobs: with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | - const prs = await github.pulls.list({ - owner: 'googleapis', - repo: 'google-api-ruby-client', - state: 'open', - sort: 'created', - direction: 'desc', - per_page: 10 - }); - var found = false; - prs.data.forEach(function(pr) { - if (found || pr.user.login != "yoshi-code-bot" || !pr.title.startsWith("Release ")) { - return; - } - core.info("AutoApprove: Found release PR " + pr.number); - if (process.env.ENABLE_AUTO_APPROVE) { - core.info("ENABLE_AUTO_APPROVE is set; labeling and approving"); - github.pulls.createReview({ - owner: 'googleapis', - repo: 'google-api-ruby-client', - body: "AutoApprove: Rubber stamped release!", - pull_number: pr.number, - event: "APPROVE" - }); - github.issues.addLabels({ - owner: 'googleapis', - repo: 'google-api-ruby-client', - issue_number: pr.number, - labels: ["autorelease: pending", "automerge", "kokoro:force-run"] - }); - } else { - core.info("ENABLE_AUTO_APPROVE is not set; labeling release only"); - github.issues.addLabels({ - owner: 'googleapis', - repo: 'google-api-ruby-client', - issue_number: pr.number, - labels: ["autorelease: pending", "kokoro:force-run"] - }); - } - core.info("AutoApprove: complete!"); - found = true; - }); - if (!found) { - core.setFailed("Unable to find release PR."); + let found = false; + for (let tries = 3; tries > 0; tries--) { + await new Promise(r => setTimeout(r, 2000)); + const prs = await github.pulls.list({ + owner: 'googleapis', + repo: 'google-api-ruby-client', + state: 'open', + sort: 'created', + direction: 'desc', + per_page: 10 + }); + prs.data.forEach(function(pr) { + if (found || pr.user.login != "yoshi-code-bot" || !pr.title.startsWith("Release ")) { + return; + } + core.info("AutoApprove: Found release PR " + pr.number); + if (process.env.ENABLE_AUTO_APPROVE) { + core.info("ENABLE_AUTO_APPROVE is set; labeling and approving"); + github.pulls.createReview({ + owner: 'googleapis', + repo: 'google-api-ruby-client', + body: "AutoApprove: Rubber stamped release!", + pull_number: pr.number, + event: "APPROVE" + }); + github.issues.addLabels({ + owner: 'googleapis', + repo: 'google-api-ruby-client', + issue_number: pr.number, + labels: ["autorelease: pending", "automerge", "kokoro:force-run"] + }); + } else { + core.info("ENABLE_AUTO_APPROVE is not set; labeling release only"); + github.issues.addLabels({ + owner: 'googleapis', + repo: 'google-api-ruby-client', + issue_number: pr.number, + labels: ["autorelease: pending", "kokoro:force-run"] + }); + } + core.info("AutoApprove: complete!"); + found = true; + tries = 0; + }); + } + if (!found) { + core.setFailed("Unable to find release PR after 3 tries."); }