Retry all http calls for artifact upload and download (#675)

* Retry all http calls for artifact upload and download

* Extra debug information

* Fix lint

* Always read response body

* PR Feedback

* Change error message if patch call fails

* Add exponential backoff when retrying

* Rework tests and add diagnostic info if exception thrown

* Fix lint

* fix lint error for real this time

* PR cleanup

* 0.5.0 @actions/artifact release

* Display diagnostic info if non-retryable code is hit
This commit is contained in:
Konrad Pabjan
2020-12-18 15:40:50 -05:00
committed by GitHub
parent 73d5917a6b
commit c861dd8859
10 changed files with 271 additions and 67 deletions

View File

@@ -65,7 +65,7 @@ export function isForbiddenStatusCode(statusCode?: number): boolean {
return statusCode === HttpCodes.Forbidden
}
export function isRetryableStatusCode(statusCode?: number): boolean {
export function isRetryableStatusCode(statusCode: number | undefined): boolean {
if (!statusCode) {
return false
}
@@ -335,3 +335,7 @@ export function getProperRetention(
}
return retention
}
export async function sleep(milliseconds: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}