From d48d6b62a40871247ed899ed80e361e72e8f8258 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:42:37 +0000 Subject: [PATCH] Remove logCacheError function and implement inline 5xx error detection as requested Co-authored-by: Link- <568794+Link-@users.noreply.github.com> --- packages/cache/src/cache.ts | 63 ++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/packages/cache/src/cache.ts b/packages/cache/src/cache.ts index a4da8cef..47d92466 100644 --- a/packages/cache/src/cache.ts +++ b/packages/cache/src/cache.ts @@ -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