diff --git a/lib/analyze-action.js b/lib/analyze-action.js index bcb46d5d3..23e4d2c47 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -91049,7 +91049,8 @@ async function uploadOverlayBaseDatabaseToCache(codeql, config, logger) { const cacheSaveKey = await getCacheSaveKey( config, codeQlVersion, - checkoutPath + checkoutPath, + logger ); logger.info( `Uploading overlay-base database to Actions cache with key ${cacheSaveKey}` @@ -91074,9 +91075,17 @@ async function uploadOverlayBaseDatabaseToCache(codeql, config, logger) { logger.info(`Successfully uploaded overlay-base database from ${dbLocation}`); return true; } -async function getCacheSaveKey(config, codeQlVersion, checkoutPath) { - const runId = getWorkflowRunID(); - const attemptId = getWorkflowRunAttempt(); +async function getCacheSaveKey(config, codeQlVersion, checkoutPath, logger) { + let runId = 1; + let attemptId = 1; + try { + runId = getWorkflowRunID(); + attemptId = getWorkflowRunAttempt(); + } catch (e) { + logger.warning( + `Failed to get workflow run ID or attempt ID. Reason: ${getErrorMessage(e)}` + ); + } const sha = await getCommitOid(checkoutPath); const restoreKeyPrefix = await getCacheRestoreKeyPrefix( config, diff --git a/src/overlay-database-utils.test.ts b/src/overlay-database-utils.test.ts index d04668e98..cee0d45f1 100644 --- a/src/overlay-database-utils.test.ts +++ b/src/overlay-database-utils.test.ts @@ -265,6 +265,7 @@ test( ); test("overlay-base database cache keys remain stable", async (t) => { + const logger = getRunnerLogger(true); const config = createTestConfig({ languages: ["python", "javascript"] }); const codeQlVersion = "2.23.0"; const commitOid = "abc123def456"; @@ -274,7 +275,12 @@ test("overlay-base database cache keys remain stable", async (t) => { sinon.stub(actionsUtil, "getWorkflowRunID").returns(12345); sinon.stub(actionsUtil, "getWorkflowRunAttempt").returns(1); - const saveKey = await getCacheSaveKey(config, codeQlVersion, "checkout-path"); + const saveKey = await getCacheSaveKey( + config, + codeQlVersion, + "checkout-path", + logger, + ); const expectedSaveKey = "codeql-overlay-base-database-1-c5666c509a2d9895-javascript_python-2.23.0-abc123def456-12345-1"; t.is( diff --git a/src/overlay-database-utils.ts b/src/overlay-database-utils.ts index bb62ec0c9..7934c5014 100644 --- a/src/overlay-database-utils.ts +++ b/src/overlay-database-utils.ts @@ -16,6 +16,7 @@ import { type Config } from "./config-utils"; import { getCommitOid, getFileOidsUnderPath } from "./git-utils"; import { Logger, withGroupAsync } from "./logging"; import { + getErrorMessage, isInTestMode, tryGetFolderBytes, waitForResultWithTimeLimit, @@ -276,6 +277,7 @@ export async function uploadOverlayBaseDatabaseToCache( config, codeQlVersion, checkoutPath, + logger, ); logger.info( `Uploading overlay-base database to Actions cache with key ${cacheSaveKey}`, @@ -457,9 +459,18 @@ export async function getCacheSaveKey( config: Config, codeQlVersion: string, checkoutPath: string, + logger: Logger, ): Promise { - const runId = getWorkflowRunID(); - const attemptId = getWorkflowRunAttempt(); + let runId = 1; + let attemptId = 1; + try { + runId = getWorkflowRunID(); + attemptId = getWorkflowRunAttempt(); + } catch (e) { + logger.warning( + `Failed to get workflow run ID or attempt ID. Reason: ${getErrorMessage(e)}`, + ); + } const sha = await getCommitOid(checkoutPath); const restoreKeyPrefix = await getCacheRestoreKeyPrefix( config,