From 1b681b21ae81d40df344001bf3bab5956abbca90 Mon Sep 17 00:00:00 2001 From: Max Heller Date: Sat, 25 Nov 2023 10:22:02 -0500 Subject: [PATCH] workspace can only have one Cargo.lock --- dist/restore/index.js | 28 ++++++++++++++-------------- dist/save/index.js | 26 +++++++++++++------------- src/cleanup.ts | 10 +--------- src/config.ts | 10 +++------- src/utils.ts | 10 ++++++++++ 5 files changed, 41 insertions(+), 43 deletions(-) diff --git a/dist/restore/index.js b/dist/restore/index.js index febcc54..e8dfee2 100644 --- a/dist/restore/index.js +++ b/dist/restore/index.js @@ -86960,6 +86960,7 @@ var cache_lib_cache = __nccwpck_require__(7799); + function reportError(e) { const { commandFailed } = e; if (commandFailed) { @@ -87007,6 +87008,15 @@ function getCacheProvider() { cache: cache, }; } +async function utils_exists(path) { + try { + await external_fs_default().promises.access(path); + return true; + } + catch { + return false; + } +} ;// CONCATENATED MODULE: ./src/workspace.ts @@ -87199,10 +87209,8 @@ class CacheConfig { keyFiles.push(cargo_manifest); } } - const cargo_locks = sort_and_uniq(workspaceMembers - .map(member => external_path_default().join(member.path, "Cargo.lock")) - .filter((external_fs_default()).existsSync)); - for (const cargo_lock of cargo_locks) { + const cargo_lock = external_path_default().join(workspace.root, "Cargo.lock"); + if (await utils_exists(cargo_lock)) { try { const content = await promises_default().readFile(cargo_lock, { encoding: "utf8" }); const parsed = parse(content); @@ -87365,6 +87373,7 @@ function sort_and_uniq(a) { + async function cleanTargetDir(targetDir, packages, checkTimestamp = false) { lib_core.debug(`cleaning target directory "${targetDir}"`); // remove all *files* from the profile directory @@ -87373,7 +87382,7 @@ async function cleanTargetDir(targetDir, packages, checkTimestamp = false) { if (dirent.isDirectory()) { let dirName = external_path_default().join(dir.path, dirent.name); // is it a profile dir, or a nested target dir? - let isNestedTarget = (await exists(external_path_default().join(dirName, "CACHEDIR.TAG"))) || (await exists(external_path_default().join(dirName, ".rustc_info.json"))); + let isNestedTarget = (await utils_exists(external_path_default().join(dirName, "CACHEDIR.TAG"))) || (await utils_exists(external_path_default().join(dirName, ".rustc_info.json"))); try { if (isNestedTarget) { await cleanTargetDir(dirName, packages, checkTimestamp); @@ -87646,15 +87655,6 @@ async function rmRF(dirName) { core.debug(`deleting "${dirName}"`); await io.rmRF(dirName); } -async function exists(path) { - try { - await external_fs_default().promises.access(path); - return true; - } - catch { - return false; - } -} ;// CONCATENATED MODULE: ./src/restore.ts diff --git a/dist/save/index.js b/dist/save/index.js index 8241c64..358f4aa 100644 --- a/dist/save/index.js +++ b/dist/save/index.js @@ -86960,6 +86960,7 @@ var cache_lib_cache = __nccwpck_require__(7799); + function reportError(e) { const { commandFailed } = e; if (commandFailed) { @@ -87007,6 +87008,15 @@ function getCacheProvider() { cache: cache, }; } +async function exists(path) { + try { + await external_fs_default().promises.access(path); + return true; + } + catch { + return false; + } +} ;// CONCATENATED MODULE: ./src/workspace.ts @@ -87199,10 +87209,8 @@ class CacheConfig { keyFiles.push(cargo_manifest); } } - const cargo_locks = sort_and_uniq(workspaceMembers - .map(member => external_path_default().join(member.path, "Cargo.lock")) - .filter((external_fs_default()).existsSync)); - for (const cargo_lock of cargo_locks) { + const cargo_lock = external_path_default().join(workspace.root, "Cargo.lock"); + if (await exists(cargo_lock)) { try { const content = await promises_default().readFile(cargo_lock, { encoding: "utf8" }); const parsed = parse(content); @@ -87365,6 +87373,7 @@ function sort_and_uniq(a) { + async function cleanTargetDir(targetDir, packages, checkTimestamp = false) { core.debug(`cleaning target directory "${targetDir}"`); // remove all *files* from the profile directory @@ -87646,15 +87655,6 @@ async function rmRF(dirName) { core.debug(`deleting "${dirName}"`); await io.rmRF(dirName); } -async function exists(path) { - try { - await external_fs_default().promises.access(path); - return true; - } - catch { - return false; - } -} ;// CONCATENATED MODULE: ./src/save.ts diff --git a/src/cleanup.ts b/src/cleanup.ts index 854f404..56fe9b4 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -4,6 +4,7 @@ import fs from "fs"; import path from "path"; import { CARGO_HOME } from "./config"; +import { exists } from "./utils"; import { Packages } from "./workspace"; export async function cleanTargetDir(targetDir: string, packages: Packages, checkTimestamp = false) { @@ -308,12 +309,3 @@ async function rmRF(dirName: string) { core.debug(`deleting "${dirName}"`); await io.rmRF(dirName); } - -async function exists(path: string) { - try { - await fs.promises.access(path); - return true; - } catch { - return false; - } -} diff --git a/src/config.ts b/src/config.ts index fbfb4e9..2b24788 100644 --- a/src/config.ts +++ b/src/config.ts @@ -8,7 +8,7 @@ import path from "path"; import * as toml from "smol-toml"; import { getCargoBins } from "./cleanup"; -import { CacheProvider, getCmdOutput } from "./utils"; +import { CacheProvider, exists, getCmdOutput } from "./utils"; import { Workspace } from "./workspace"; const HOME = os.homedir(); @@ -191,12 +191,8 @@ export class CacheConfig { } } - const cargo_locks = sort_and_uniq(workspaceMembers - .map(member => path.join(member.path, "Cargo.lock")) - .filter(fs.existsSync) - ); - - for (const cargo_lock of cargo_locks) { + const cargo_lock = path.join(workspace.root, "Cargo.lock"); + if (await exists(cargo_lock)) { try { const content = await fs_promises.readFile(cargo_lock, { encoding: "utf8" }); const parsed = toml.parse(content); diff --git a/src/utils.ts b/src/utils.ts index bb393f3..a276e5d 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,6 +2,7 @@ import * as core from "@actions/core"; import * as exec from "@actions/exec"; import * as buildjetCache from "@actions/buildjet-cache"; import * as ghCache from "@actions/cache"; +import fs from "fs"; export function reportError(e: any) { const { commandFailed } = e; @@ -61,3 +62,12 @@ export function getCacheProvider(): CacheProvider { cache: cache, }; } + +export async function exists(path: string) { + try { + await fs.promises.access(path); + return true; + } catch { + return false; + } +}