Merge pull request #96 from sonphantrung/retry-v2

Add retry to upload release (UPDATED VERSION)
This commit is contained in:
Sven-Hendrik Haase 2023-02-21 15:07:45 +01:00 committed by GitHub
commit e8c797e08e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 478 additions and 5178 deletions

5629
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,7 @@
"dependencies": { "dependencies": {
"@actions/core": "^1.10.0", "@actions/core": "^1.10.0",
"@actions/github": "^5", "@actions/github": "^5",
"@lifeomic/attempt": "^3.0.3",
"glob": "^7" "glob": "^7"
}, },
"devDependencies": { "devDependencies": {

View File

@ -5,6 +5,7 @@ import * as core from '@actions/core'
import * as github from '@actions/github' import * as github from '@actions/github'
import * as path from 'path' import * as path from 'path'
import * as glob from 'glob' import * as glob from 'glob'
import { retry } from '@lifeomic/attempt'
const releaseByTag = 'GET /repos/{owner}/{repo}/releases/tags/{tag}' as const const releaseByTag = 'GET /repos/{owner}/{repo}/releases/tags/{tag}' as const
const createRelease = 'POST /repos/{owner}/{repo}/releases' as const const createRelease = 'POST /repos/{owner}/{repo}/releases' as const
@ -94,16 +95,21 @@ async function upload_to_release(
} }
core.debug(`Uploading ${file} to ${asset_name} in release ${tag}.`) core.debug(`Uploading ${file} to ${asset_name} in release ${tag}.`)
const uploaded_asset: UploadAssetResp = await octokit.request(uploadAssets, { const uploaded_asset: UploadAssetResp = await retry(async () => {
...repo(), return octokit.request(uploadAssets, {
release_id: release.data.id, ...repo(),
url: release.data.upload_url, release_id: release.data.id,
name: asset_name, url: release.data.upload_url,
data: file_bytes, name: asset_name,
headers: { data: file_bytes,
'content-type': 'binary/octet-stream', headers: {
'content-length': file_size 'content-type': 'binary/octet-stream',
} 'content-length': file_size
}
}
)
}, {
maxAttempts: 3
}) })
return uploaded_asset.data.browser_download_url return uploaded_asset.data.browser_download_url
} }