@@ -81,6 +81,7 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
81
81
if ( variant === 'main' ) variant = 'prod'
82
82
ref = ref . replace ( / ^ r e f s \/ / , '' )
83
83
const tagName = `${ variant } -${ await getNextReleaseNumber ( { octokit, owner, repo, variant } ) } `
84
+ const latestTagName = `${ variant } -latest`
84
85
const message = `Release ${ tagName } `
85
86
const bundleFileBasename = `${ bundleName } -bundle.zip`
86
87
const bundleFile = await versionBundle ( path . join ( dest , bundleFileBasename ) , tagName )
@@ -104,22 +105,31 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
104
105
. createCommit ( { owner, repo, message, tree, parents : [ commit ] } )
105
106
. then ( ( result ) => result . data . sha )
106
107
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
+ } ,
114
133
} )
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
+ }
125
135
}
0 commit comments