@@ -81,6 +81,7 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
8181 if ( variant === 'main' ) variant = 'prod'
8282 ref = ref . replace ( / ^ r e f s \/ / , '' )
8383 const tagName = `${ variant } -${ await getNextReleaseNumber ( { octokit, owner, repo, variant } ) } `
84+ const latestTagName = `${ variant } -latest`
8485 const message = `Release ${ tagName } `
8586 const bundleFileBasename = `${ bundleName } -bundle.zip`
8687 const bundleFile = await versionBundle ( path . join ( dest , bundleFileBasename ) , tagName )
@@ -104,22 +105,31 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
104105 . createCommit ( { owner, repo, message, tree, parents : [ commit ] } )
105106 . then ( ( result ) => result . data . sha )
106107 if ( updateBranch ) await octokit . git . updateRef ( { owner, repo, ref, sha : commit } )
107- const uploadUrl = await octokit . repos
108- . createRelease ( {
109- owner,
110- repo,
111- tag_name : tagName ,
112- target_commitish : commit ,
113- name : tagName ,
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 ] ) {
116+ const uploadUrl = await octokit . repos
117+ . createRelease ( {
118+ owner,
119+ repo,
120+ tag_name : tag ,
121+ target_commitish : commit ,
122+ name : tag ,
123+ } )
124+ . then ( ( result ) => result . data . upload_url )
125+ await octokit . repos . uploadReleaseAsset ( {
126+ url : uploadUrl ,
127+ data : fs . createReadStream ( bundleFile ) ,
128+ name : bundleFileBasename ,
129+ headers : {
130+ 'content-length' : ( await fsp . stat ( bundleFile ) ) . size ,
131+ 'content-type' : 'application/zip' ,
132+ } ,
114133 } )
115- . then ( ( result ) => result . data . upload_url )
116- await octokit . repos . uploadReleaseAsset ( {
117- url : uploadUrl ,
118- data : fs . createReadStream ( bundleFile ) ,
119- name : bundleFileBasename ,
120- headers : {
121- 'content-length' : ( await fsp . stat ( bundleFile ) ) . size ,
122- 'content-type' : 'application/zip' ,
123- } ,
124- } )
134+ }
125135}
0 commit comments