mirror of
				https://github.com/Swatinem/rust-cache
				synced 2025-11-04 14:39:11 +00:00 
			
		
		
		
	workspace can only have one Cargo.lock
This commit is contained in:
		
							parent
							
								
									542fe36d5b
								
							
						
					
					
						commit
						1b681b21ae
					
				
					 5 changed files with 41 additions and 43 deletions
				
			
		
							
								
								
									
										28
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										26
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								src/utils.ts
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue