From 0fd92001e95bf1f393c9a7b685ac2a7f0cfe7c89 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 28 Jun 2022 14:17:12 +0200 Subject: [PATCH] Rework cache handling --- package-lock.json | 72 +++++++++++++++++++++++++++++++++----------- package.json | 4 +-- src/cache-restore.ts | 27 ++++++----------- src/cache-save.ts | 15 +++------ 4 files changed, 69 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index 469fb81..de23ca2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,11 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@actions/cache": "^2.0.2", + "@actions/cache": "^3.0.0", "@actions/core": "^1.6.0", "@actions/exec": "^1.1.0", "@actions/glob": "^0.2.0", - "@actions/http-client": "^1.0.6", + "@actions/http-client": "^2.0.1", "@actions/io": "^1.0.2", "@actions/tool-cache": "^1.5.5", "semver": "^6.1.1" @@ -32,14 +32,14 @@ } }, "node_modules/@actions/cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz", - "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz", + "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==", "dependencies": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.1", "@actions/glob": "^0.1.0", - "@actions/http-client": "^1.0.9", + "@actions/http-client": "^2.0.1", "@actions/io": "^1.0.1", "@azure/ms-rest-js": "^2.6.0", "@azure/storage-blob": "^12.8.0", @@ -64,6 +64,14 @@ "@actions/http-client": "^1.0.11" } }, + "node_modules/@actions/core/node_modules/@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "dependencies": { + "tunnel": "0.0.6" + } + }, "node_modules/@actions/exec": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", @@ -82,11 +90,11 @@ } }, "node_modules/@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", "dependencies": { - "tunnel": "0.0.6" + "tunnel": "^0.0.6" } }, "node_modules/@actions/io": { @@ -107,6 +115,14 @@ "uuid": "^3.3.2" } }, + "node_modules/@actions/tool-cache/node_modules/@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "dependencies": { + "tunnel": "0.0.6" + } + }, "node_modules/@ampproject/remapping": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", @@ -4948,14 +4964,14 @@ }, "dependencies": { "@actions/cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-2.0.2.tgz", - "integrity": "sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.0.tgz", + "integrity": "sha512-GL9CT1Fnu+pqs8TTB621q8Xa8Cilw2n9MwvbgMedetH7L1q2n6jY61gzbwGbKgtVbp3gVJ12aNMi4osSGXx3KQ==", "requires": { "@actions/core": "^1.2.6", "@actions/exec": "^1.0.1", "@actions/glob": "^0.1.0", - "@actions/http-client": "^1.0.9", + "@actions/http-client": "^2.0.1", "@actions/io": "^1.0.1", "@azure/ms-rest-js": "^2.6.0", "@azure/storage-blob": "^12.8.0", @@ -4980,6 +4996,16 @@ "integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==", "requires": { "@actions/http-client": "^1.0.11" + }, + "dependencies": { + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } + } } }, "@actions/exec": { @@ -5000,11 +5026,11 @@ } }, "@actions/http-client": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", - "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", "requires": { - "tunnel": "0.0.6" + "tunnel": "^0.0.6" } }, "@actions/io": { @@ -5023,6 +5049,16 @@ "@actions/io": "^1.1.1", "semver": "^6.1.0", "uuid": "^3.3.2" + }, + "dependencies": { + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } + } } }, "@ampproject/remapping": { diff --git a/package.json b/package.json index 34e2820..df6fd2b 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,11 @@ "author": "GitHub", "license": "MIT", "dependencies": { - "@actions/cache": "^2.0.2", + "@actions/cache": "^3.0.0", "@actions/core": "^1.6.0", "@actions/exec": "^1.1.0", "@actions/glob": "^0.2.0", - "@actions/http-client": "^1.0.6", + "@actions/http-client": "^2.0.1", "@actions/io": "^1.0.2", "@actions/tool-cache": "^1.5.5", "semver": "^6.1.1" diff --git a/src/cache-restore.ts b/src/cache-restore.ts index 54da8fb..3e6df51 100644 --- a/src/cache-restore.ts +++ b/src/cache-restore.ts @@ -34,26 +34,17 @@ export const restoreCache = async ( core.saveState(State.CachePrimaryKey, primaryKey); - try { - const cacheKey = await cache.restoreCache(cachePaths, primaryKey); - core.setOutput(Outputs.CacheHit, Boolean(cacheKey)); + const cacheKey = await cache.restoreCache(cachePaths, primaryKey); + core.setOutput(Outputs.CacheHit, Boolean(cacheKey)); - if (!cacheKey) { - core.info(`Cache is not found`); - return; - } - - core.saveState(State.CacheMatchedKey, cacheKey); - core.info(`Cache restored from key: ${cacheKey}`); - } catch (error) { - const typedError = error as Error; - if (typedError.name === cache.ValidationError.name) { - throw error; - } else { - core.warning(typedError.message); - core.setOutput(Outputs.CacheHit, false); - } + if (!cacheKey) { + core.info(`Cache is not found`); + core.setOutput(Outputs.CacheHit, false); + return; } + + core.saveState(State.CacheMatchedKey, cacheKey); + core.info(`Cache restored from key: ${cacheKey}`); }; const findDependencyFile = (packageManager: PackageManagerInfo) => { diff --git a/src/cache-save.ts b/src/cache-save.ts index 7c5702e..8ac43df 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -58,18 +58,11 @@ const cachePackages = async () => { return; } - try { - await cache.saveCache(cachePaths, primaryKey); - core.info(`Cache saved with the key: ${primaryKey}`); - } catch (error) { - if (error.name === cache.ValidationError.name) { - throw error; - } else if (error.name === cache.ReserveCacheError.name) { - core.info(error.message); - } else { - core.warning(`${error.message}`); - } + const cacheId = await cache.saveCache(cachePaths, primaryKey); + if (cacheId == -1) { + return; } + core.info(`Cache saved with the key: ${primaryKey}`); }; export function logWarning(message: string): void {