From ead53b3f23dd593e2287d761eb10565fc5b10de2 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 26 Feb 2020 17:09:49 -0600 Subject: [PATCH] Always delete previous releases, not only for dev (#1001) This will delete a same-name of a previous release for all tags, not just the dev tag. That way if we need to retry a tagged release we'll delete it and recreate it as usual. Closes #978 --- .github/actions/github-release/main.js | 29 ++++++++++++-------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/.github/actions/github-release/main.js b/.github/actions/github-release/main.js index d2afa35fa9..571a2978b5 100644 --- a/.github/actions/github-release/main.js +++ b/.github/actions/github-release/main.js @@ -24,24 +24,21 @@ async function runOnce() { const octokit = new github.GitHub(token); - // If this is a `dev` release then we need to actually delete the previous - // release since we can't overwrite a new one. We also need to update the - // `dev` tag while we're at it. So here you'll see: - // - // * Look for the `dev` release, then delete it if it exists - // * Update the `dev` release to our current sha, or create one if it doesn't - // exist - if (name == 'dev') { - const releases = await octokit.paginate("GET /repos/:owner/:repo/releases", { owner, repo }); - for (const release of releases) { - if (release.tag_name !== 'dev') { - continue; - } - const release_id = release.id; - core.info(`deleting release ${release_id}`); - await octokit.repos.deleteRelease({ owner, repo, release_id }); + // Delete the previous release since we can't overwrite one. This may happen + // due to retrying an upload or it may happen because we're doing the dev + // release. + const releases = await octokit.paginate("GET /repos/:owner/:repo/releases", { owner, repo }); + for (const release of releases) { + if (release.tag_name !== name) { + continue; } + const release_id = release.id; + core.info(`deleting release ${release_id}`); + await octokit.repos.deleteRelease({ owner, repo, release_id }); + } + // We also need to update the `dev` tag while we're at it on the `dev` branch. + if (name == 'dev') { try { core.info(`updating dev tag`); await octokit.git.updateRef({