@@ -75,13 +75,13 @@ function addVersionEntry (file, tagName, contents = Buffer.alloc(0)) {
75
75
return file
76
76
}
77
77
78
- module . exports = ( dest , bundleName , owner , repo , ref , token , updateBranch ) => async ( ) => {
78
+ module . exports = ( dest , bundleName , owner , repo , ref , token , updateBranch , latestAlias ) => async ( ) => {
79
79
const octokit = new Octokit ( { auth : `token ${ token } ` } )
80
80
let variant = ref ? ref . replace ( / ^ r e f s \/ h e a d s \/ / , '' ) : 'main'
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
+ const latestTagName = latestAlias === false ? undefined : `${ variant } -${ latestAlias || ' latest' } `
85
85
const message = `Release ${ tagName } `
86
86
const bundleFileBasename = `${ bundleName } -bundle.zip`
87
87
const bundleFile = await versionBundle ( ospath . join ( dest , bundleFileBasename ) , tagName )
@@ -105,31 +105,26 @@ module.exports = (dest, bundleName, owner, repo, ref, token, updateBranch) => as
105
105
. createCommit ( { owner, repo, message, tree, parents : [ commit ] } )
106
106
. then ( ( result ) => result . data . sha )
107
107
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 ) )
116
120
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 } )
124
122
. then ( ( result ) => result . data . upload_url )
125
123
await octokit . repos . uploadReleaseAsset ( {
126
124
url : uploadUrl ,
127
125
data : fs . createReadStream ( bundleFile ) ,
128
126
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' } ,
133
128
} )
134
129
}
135
130
}
0 commit comments