@@ -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 ( / ^ r e f s \/ h e a d s \/ / , '' ) : 'main'
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`
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