Remove logCacheError function and implement inline 5xx error detection as requested

Co-authored-by: Link- <568794+Link-@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-07-14 12:42:37 +00:00
parent bab3dcf7f3
commit d48d6b62a4
+41 -22
View File
@@ -13,7 +13,6 @@ import {
GetCacheEntryDownloadURLRequest
} from './generated/results/api/v1/cache'
import {CacheFileSizeLimit} from './internal/constants'
import {isServerErrorStatusCode} from './internal/requestUtils'
import {HttpClientError} from '@actions/http-client'
export class ValidationError extends Error {
constructor(message: string) {
@@ -31,19 +30,6 @@ export class ReserveCacheError extends Error {
}
}
function logCacheError(message: string, error: Error): void {
// Log server errors (5xx) as errors, all other errors as warnings
if (
error instanceof HttpClientError &&
typeof error.statusCode === 'number' &&
isServerErrorStatusCode(error.statusCode)
) {
core.error(message)
} else {
core.warning(message)
}
}
function checkPaths(paths: string[]): void {
if (!paths || paths.length === 0) {
throw new ValidationError(
@@ -215,7 +201,16 @@ async function restoreCacheV1(
throw error
} else {
// warn on cache restore failure and continue build
core.warning(`Failed to restore: ${(error as Error).message}`)
// Log server errors (5xx) as errors, all other errors as warnings
if (
typedError instanceof HttpClientError &&
typeof typedError.statusCode === 'number' &&
typedError.statusCode >= 500
) {
core.error(`Failed to restore: ${(error as Error).message}`)
} else {
core.warning(`Failed to restore: ${(error as Error).message}`)
}
}
} finally {
// Try to delete the archive to save space
@@ -332,11 +327,17 @@ async function restoreCacheV2(
if (typedError.name === ValidationError.name) {
throw error
} else {
// Log cache related errors
logCacheError(
`Failed to restore: ${(error as Error).message}`,
typedError
)
// Supress all non-validation cache related errors because caching should be optional
// Log server errors (5xx) as errors, all other errors as warnings
if (
typedError instanceof HttpClientError &&
typeof typedError.statusCode === 'number' &&
typedError.statusCode >= 500
) {
core.error(`Failed to restore: ${(error as Error).message}`)
} else {
core.warning(`Failed to restore: ${(error as Error).message}`)
}
}
} finally {
try {
@@ -468,7 +469,16 @@ async function saveCacheV1(
} else if (typedError.name === ReserveCacheError.name) {
core.info(`Failed to save: ${typedError.message}`)
} else {
core.warning(`Failed to save: ${typedError.message}`)
// Log server errors (5xx) as errors, all other errors as warnings
if (
typedError instanceof HttpClientError &&
typeof typedError.statusCode === 'number' &&
typedError.statusCode >= 500
) {
core.error(`Failed to save: ${typedError.message}`)
} else {
core.warning(`Failed to save: ${typedError.message}`)
}
}
} finally {
// Try to delete the archive to save space
@@ -607,7 +617,16 @@ async function saveCacheV2(
} else if (typedError.name === ReserveCacheError.name) {
core.info(`Failed to save: ${typedError.message}`)
} else {
logCacheError(`Failed to save: ${typedError.message}`, typedError)
// Log server errors (5xx) as errors, all other errors as warnings
if (
typedError instanceof HttpClientError &&
typeof typedError.statusCode === 'number' &&
typedError.statusCode >= 500
) {
core.error(`Failed to save: ${typedError.message}`)
} else {
core.warning(`Failed to save: ${typedError.message}`)
}
}
} finally {
// Try to delete the archive to save space