Add retry to upload release

This commit is contained in:
messense 2022-07-03 11:23:10 +08:00
parent fb1eb39e74
commit 1819382cf9
No known key found for this signature in database
GPG Key ID: BB41A8A2C716CCA9
3 changed files with 11728 additions and 18 deletions

11720
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,7 @@
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/github": "^4.0.0",
"@lifeomic/attempt": "^3.0.3",
"@types/glob": "^7.1.2",
"glob": "^7.1.6"
},

View File

@ -5,6 +5,7 @@ import * as core from '@actions/core'
import * as github from '@actions/github'
import * as path from 'path'
import * as glob from 'glob'
import { retry } from '@lifeomic/attempt'
type RepoAssetsResp = Endpoints['GET /repos/:owner/:repo/releases/:release_id/assets']['response']['data']
type ReleaseByTagResp = Endpoints['GET /repos/:owner/:repo/releases/tags/:tag']['response']
@ -88,17 +89,21 @@ async function upload_to_release(
}
core.debug(`Uploading ${file} to ${asset_name} in release ${tag}.`)
const uploaded_asset: UploadAssetResp = await octokit.repos.uploadReleaseAsset(
{
url: release.data.upload_url,
name: asset_name,
data: file_bytes,
headers: {
'content-type': 'binary/octet-stream',
'content-length': file_size
const uploaded_asset: UploadAssetResp = await retry(async () => {
return octokit.repos.uploadReleaseAsset(
{
url: release.data.upload_url,
name: asset_name,
data: file_bytes,
headers: {
'content-type': 'binary/octet-stream',
'content-length': file_size
}
}
}
)
)
}, {
maxAttempts: 3
})
return uploaded_asset.data.browser_download_url
}