Skip to content

Commit 14bb0ba

Browse files
committed
make latest alias configurable; put in slight delay before creating alias release
1 parent e1c5d3d commit 14bb0ba

File tree

1 file changed

+16
-21
lines changed

1 file changed

+16
-21
lines changed

gulp.d/tasks/release.js

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,13 @@ function addVersionEntry (file, tagName, contents = Buffer.alloc(0)) {
7575
return file
7676
}
7777

78-
module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => async () => {
78+
module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch, latestAlias) => async () => {
7979
const octokit = new Octokit({ auth: `token ${token}` })
8080
let variant = ref ? ref.replace(/^refs\/heads\//, '') : 'main'
8181
if (variant === 'main') variant = 'prod'
8282
ref = ref.replace(/^refs\//, '')
8383
const tagName = `${variant}-${await getNextReleaseNumber({ octokit, owner, repo, variant })}`
84-
const latestTagName = `${variant}-latest`
84+
const latestTagName = latestAlias === false ? undefined : `${variant}-${latestAlias || 'latest'}`
8585
const message = `Release ${tagName}`
8686
const bundleFileBasename = `${bundleName}-bundle.zip`
8787
const bundleFile = await versionBundle(ospath.join(dest, bundleFileBasename), tagName)
@@ -105,31 +105,26 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
105105
.createCommit({ owner, repo, message, tree, parents: [commit] })
106106
.then((result) => result.data.sha)
107107
if (updateBranch) await octokit.git.updateRef({ owner, repo, ref, sha: commit })
108-
await octokit.repos.getReleaseByTag({ owner, repo, tag: latestTagName }).then(
109-
(result) =>
110-
octokit.repos
111-
.deleteRelease({ owner, repo, release_id: result.data.id })
112-
.then(() => octokit.git.deleteRef({ owner, repo, ref: `tags/${result.data.tag_name}` }).catch(() => undefined)),
113-
() => undefined
114-
)
115-
for (const tag of [tagName, latestTagName]) {
108+
if (latestTagName) {
109+
await octokit.repos.getReleaseByTag({ owner, repo, tag: latestTagName }).then(
110+
(result) =>
111+
octokit.repos
112+
.deleteRelease({ owner, repo, release_id: result.data.id })
113+
.then(() => octokit.git.deleteRef({ owner, repo, ref: `tags/${latestTagName}` }).catch(() => undefined)),
114+
() => undefined
115+
)
116+
}
117+
const tags = latestTagName ? [tagName, latestTagName] : [tagName]
118+
for (const tag of tags) {
119+
if (tag !== tagName) await new Promise((resolve) => setTimeout(resolve, 1000))
116120
const uploadUrl = await octokit.repos
117-
.createRelease({
118-
owner,
119-
repo,
120-
tag_name: tag,
121-
target_commitish: commit,
122-
name: tag,
123-
})
121+
.createRelease({ owner, repo, tag_name: tag, target_commitish: commit, name: tag })
124122
.then((result) => result.data.upload_url)
125123
await octokit.repos.uploadReleaseAsset({
126124
url: uploadUrl,
127125
data: fs.createReadStream(bundleFile),
128126
name: bundleFileBasename,
129-
headers: {
130-
'content-length': (await fsp.stat(bundleFile)).size,
131-
'content-type': 'application/zip',
132-
},
127+
headers: { 'content-length': (await fsp.stat(bundleFile)).size, 'content-type': 'application/zip' },
133128
})
134129
}
135130
}

0 commit comments

Comments
 (0)