diff --git a/lib/trap-caching.js b/lib/trap-caching.js index d18cdcae0..ff93f5693 100644 --- a/lib/trap-caching.js +++ b/lib/trap-caching.js @@ -146,9 +146,10 @@ async function cleanupTrapCaches(config, features, logger) { } try { let totalBytesCleanedUp = 0; + const allCaches = await apiClient.listActionsCaches(CODEQL_TRAP_CACHE_PREFIX, await actionsUtil.getRef()); for (const language of config.languages) { if (config.trapCaches[language]) { - const cachesToRemove = await getTrapCachesForLanguage(language, logger); + const cachesToRemove = await getTrapCachesForLanguage(allCaches, language, logger); // Dates returned by the API are in ISO 8601 format, so we can sort them lexicographically cachesToRemove.sort((a, b) => a.created_at.localeCompare(b.created_at)); // Keep the most recent cache @@ -179,9 +180,8 @@ async function cleanupTrapCaches(config, features, logger) { } } exports.cleanupTrapCaches = cleanupTrapCaches; -async function getTrapCachesForLanguage(language, logger) { +async function getTrapCachesForLanguage(allCaches, language, logger) { logger.debug(`Listing TRAP caches for ${language}`); - const allCaches = await apiClient.listActionsCaches(CODEQL_TRAP_CACHE_PREFIX, await actionsUtil.getRef()); for (const cache of allCaches) { if (!cache.created_at || !cache.id || !cache.key || !cache.size_in_bytes) { throw new Error("An unexpected cache item was returned from the API that was missing one or " + diff --git a/lib/trap-caching.js.map b/lib/trap-caching.js.map index 729210424..bc8f9903c 100644 --- a/lib/trap-caching.js.map +++ b/lib/trap-caching.js.map @@ -1 +1 @@ -{"version":3,"file":"trap-caching.js","sourceRoot":"","sources":["../src/trap-caching.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"trap-caching.js","sourceRoot":"","sources":["../src/trap-caching.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/trap-caching.test.js b/lib/trap-caching.test.js index 9f21d131c..e75bb443b 100644 --- a/lib/trap-caching.test.js +++ b/lib/trap-caching.test.js @@ -32,8 +32,11 @@ const cache = __importStar(require("@actions/cache")); const ava_1 = __importDefault(require("ava")); const sinon = __importStar(require("sinon")); const actionsUtil = __importStar(require("./actions-util")); +const apiClient = __importStar(require("./api-client")); const codeql_1 = require("./codeql"); +const feature_flags_1 = require("./feature-flags"); const languages_1 = require("./languages"); +const logging_1 = require("./logging"); const testing_utils_1 = require("./testing-utils"); const trap_caching_1 = require("./trap-caching"); const util = __importStar(require("./util")); @@ -168,4 +171,65 @@ function getTestConfigWithTempDir(tempDir) { t.assert(fs.existsSync(path.resolve(tmpDir, "trapCaches", "javascript"))); }); }); +(0, ava_1.default)("cleanup removes only old CodeQL TRAP caches", async (t) => { + await util.withTmpDir(async (tmpDir) => { + const config = getTestConfigWithTempDir(tmpDir); + sinon.stub(actionsUtil, "getRef").resolves("refs/heads/main"); + sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(true); + const listStub = sinon.stub(apiClient, "listActionsCaches").resolves([ + { + id: 1, + key: "some-other-key", + created_at: "2024-05-23T14:25:00Z", + size_in_bytes: 100 * 1024 * 1024, + }, + { + id: 2, + key: "codeql-trap-1-2.0.0-javascript-newest", + created_at: "2024-04-23T14:25:00Z", + size_in_bytes: 50 * 1024 * 1024, + }, + { + id: 3, + key: "codeql-trap-1-2.0.0-javascript-older", + created_at: "2024-03-22T14:25:00Z", + size_in_bytes: 200 * 1024 * 1024, + }, + { + id: 4, + key: "codeql-trap-1-2.0.0-javascript-oldest", + created_at: "2024-02-21T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 5, + key: "codeql-trap-1-2.0.0-ruby-newest", + created_at: "2024-02-20T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 6, + key: "codeql-trap-1-2.0.0-swift-newest", + created_at: "2024-02-22T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 7, + key: "codeql-trap-1-2.0.0-swift-older", + created_at: "2024-02-21T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + ]); + const deleteStub = sinon.stub(apiClient, "deleteActionsCache").resolves(); + const statusReport = await (0, trap_caching_1.cleanupTrapCaches)(config, (0, testing_utils_1.createFeatures)([feature_flags_1.Feature.CleanupTrapCaches]), (0, logging_1.getRunnerLogger)(true)); + t.is(listStub.callCount, 1); + t.assert(listStub.calledWithExactly("codeql-trap", "refs/heads/main")); + t.deepEqual(statusReport, { + trap_cache_cleanup_size_bytes: 500 * 1024 * 1024, + }); + t.is(deleteStub.callCount, 2); + t.assert(deleteStub.calledWithExactly(3)); + t.assert(deleteStub.calledWithExactly(4)); + }); +}); //# sourceMappingURL=trap-caching.test.js.map \ No newline at end of file diff --git a/lib/trap-caching.test.js.map b/lib/trap-caching.test.js.map index bc31a9a56..68a11c232 100644 --- a/lib/trap-caching.test.js.map +++ b/lib/trap-caching.test.js.map @@ -1 +1 @@ -{"version":3,"file":"trap-caching.test.js","sourceRoot":"","sources":["../src/trap-caching.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"trap-caching.test.js","sourceRoot":"","sources":["../src/trap-caching.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/trap-caching.test.ts b/src/trap-caching.test.ts index 572b6ab9d..a74da96df 100644 --- a/src/trap-caching.test.ts +++ b/src/trap-caching.test.ts @@ -6,20 +6,25 @@ import test from "ava"; import * as sinon from "sinon"; import * as actionsUtil from "./actions-util"; +import * as apiClient from "./api-client"; import { setCodeQL, getTrapCachingExtractorConfigArgs, getTrapCachingExtractorConfigArgsForLang, } from "./codeql"; import * as configUtils from "./config-utils"; +import { Feature } from "./feature-flags"; import { Language } from "./languages"; +import { getRunnerLogger } from "./logging"; import { + createFeatures, createTestConfig, getRecordingLogger, makeVersionInfo, setupTests, } from "./testing-utils"; import { + cleanupTrapCaches, downloadTrapCaches, getLanguagesSupportingCaching, uploadTrapCaches, @@ -189,3 +194,75 @@ test("download cache looks for the right key and creates dir", async (t) => { t.assert(fs.existsSync(path.resolve(tmpDir, "trapCaches", "javascript"))); }); }); + +test("cleanup removes only old CodeQL TRAP caches", async (t) => { + await util.withTmpDir(async (tmpDir) => { + const config = getTestConfigWithTempDir(tmpDir); + + sinon.stub(actionsUtil, "getRef").resolves("refs/heads/main"); + sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(true); + const listStub = sinon.stub(apiClient, "listActionsCaches").resolves([ + { + id: 1, + key: "some-other-key", + created_at: "2024-05-23T14:25:00Z", + size_in_bytes: 100 * 1024 * 1024, + }, + { + id: 2, + key: "codeql-trap-1-2.0.0-javascript-newest", + created_at: "2024-04-23T14:25:00Z", + size_in_bytes: 50 * 1024 * 1024, + }, + { + id: 3, + key: "codeql-trap-1-2.0.0-javascript-older", + created_at: "2024-03-22T14:25:00Z", + size_in_bytes: 200 * 1024 * 1024, + }, + { + id: 4, + key: "codeql-trap-1-2.0.0-javascript-oldest", + created_at: "2024-02-21T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 5, + key: "codeql-trap-1-2.0.0-ruby-newest", + created_at: "2024-02-20T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 6, + key: "codeql-trap-1-2.0.0-swift-newest", + created_at: "2024-02-22T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + { + id: 7, + key: "codeql-trap-1-2.0.0-swift-older", + created_at: "2024-02-21T14:25:00Z", + size_in_bytes: 300 * 1024 * 1024, + }, + ]); + + const deleteStub = sinon.stub(apiClient, "deleteActionsCache").resolves(); + + const statusReport = await cleanupTrapCaches( + config, + createFeatures([Feature.CleanupTrapCaches]), + getRunnerLogger(true), + ); + + t.is(listStub.callCount, 1); + t.assert(listStub.calledWithExactly("codeql-trap", "refs/heads/main")); + + t.deepEqual(statusReport, { + trap_cache_cleanup_size_bytes: 500 * 1024 * 1024, + }); + + t.is(deleteStub.callCount, 2); + t.assert(deleteStub.calledWithExactly(3)); + t.assert(deleteStub.calledWithExactly(4)); + }); +}); diff --git a/src/trap-caching.ts b/src/trap-caching.ts index 8f60d15a7..eb1777beb 100644 --- a/src/trap-caching.ts +++ b/src/trap-caching.ts @@ -186,9 +186,19 @@ export async function cleanupTrapCaches( try { let totalBytesCleanedUp = 0; + + const allCaches = await apiClient.listActionsCaches( + CODEQL_TRAP_CACHE_PREFIX, + await actionsUtil.getRef(), + ); + for (const language of config.languages) { if (config.trapCaches[language]) { - const cachesToRemove = await getTrapCachesForLanguage(language, logger); + const cachesToRemove = await getTrapCachesForLanguage( + allCaches, + language, + logger, + ); // Dates returned by the API are in ISO 8601 format, so we can sort them lexicographically cachesToRemove.sort((a, b) => a.created_at.localeCompare(b.created_at)); // Keep the most recent cache @@ -227,14 +237,11 @@ export async function cleanupTrapCaches( } async function getTrapCachesForLanguage( + allCaches: apiClient.ActionsCacheItem[], language: Language, logger: Logger, ): Promise>> { logger.debug(`Listing TRAP caches for ${language}`); - const allCaches = await apiClient.listActionsCaches( - CODEQL_TRAP_CACHE_PREFIX, - await actionsUtil.getRef(), - ); for (const cache of allCaches) { if (!cache.created_at || !cache.id || !cache.key || !cache.size_in_bytes) {