mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 03:38:36 +08:00 
			
		
		
		
	Organize code
This commit is contained in:
		
							parent
							
								
									36ce21c4a4
								
							
						
					
					
						commit
						8d6737458a
					
				|  | @ -3,7 +3,7 @@ import * as io from "@actions/io"; | ||||||
| import { promises as fs } from "fs"; | import { promises as fs } from "fs"; | ||||||
| import * as path from "path"; | import * as path from "path"; | ||||||
| 
 | 
 | ||||||
| import { CacheFilename } from "../src/constants"; | import { CacheFilename, ManifestFilename } from "../src/constants"; | ||||||
| import * as tar from "../src/tar"; | import * as tar from "../src/tar"; | ||||||
| 
 | 
 | ||||||
| jest.mock("@actions/exec"); | jest.mock("@actions/exec"); | ||||||
|  | @ -32,11 +32,11 @@ test("extract tar", async () => { | ||||||
|     const execMock = jest.spyOn(exec, "exec"); |     const execMock = jest.spyOn(exec, "exec"); | ||||||
| 
 | 
 | ||||||
|     const archivePath = "cache.tar"; |     const archivePath = "cache.tar"; | ||||||
|     const workspace = process.env["GITHUB_WORKSPACE"]; |     const workingDirectory = process.env["GITHUB_WORKSPACE"]; | ||||||
| 
 | 
 | ||||||
|     await tar.extractTar(archivePath); |     await tar.extractTar(archivePath); | ||||||
| 
 | 
 | ||||||
|     expect(mkdirMock).toHaveBeenCalledWith(workspace); |     expect(mkdirMock).toHaveBeenCalledWith(workingDirectory); | ||||||
| 
 | 
 | ||||||
|     const IS_WINDOWS = process.platform === "win32"; |     const IS_WINDOWS = process.platform === "win32"; | ||||||
|     const tarPath = IS_WINDOWS |     const tarPath = IS_WINDOWS | ||||||
|  | @ -52,7 +52,7 @@ test("extract tar", async () => { | ||||||
|             archivePath, |             archivePath, | ||||||
|             "-P", |             "-P", | ||||||
|             "-C", |             "-C", | ||||||
|             workspace |             workingDirectory | ||||||
|         ], |         ], | ||||||
|         { cwd: undefined } |         { cwd: undefined } | ||||||
|     ); |     ); | ||||||
|  | @ -62,8 +62,8 @@ test("create tar", async () => { | ||||||
|     const execMock = jest.spyOn(exec, "exec"); |     const execMock = jest.spyOn(exec, "exec"); | ||||||
| 
 | 
 | ||||||
|     const archiveFolder = getTempDir(); |     const archiveFolder = getTempDir(); | ||||||
|     const workspace = process.env["GITHUB_WORKSPACE"]; |     const workingDirectory = process.env["GITHUB_WORKSPACE"]; | ||||||
|     const sourceDirectories = ["~/.npm/cache", `${workspace}/dist`]; |     const sourceDirectories = ["~/.npm/cache", `${workingDirectory}/dist`]; | ||||||
| 
 | 
 | ||||||
|     await fs.mkdir(archiveFolder, { recursive: true }); |     await fs.mkdir(archiveFolder, { recursive: true }); | ||||||
| 
 | 
 | ||||||
|  | @ -83,12 +83,10 @@ test("create tar", async () => { | ||||||
|             "-cf", |             "-cf", | ||||||
|             CacheFilename, |             CacheFilename, | ||||||
|             "-C", |             "-C", | ||||||
|             workspace, |             workingDirectory, | ||||||
|             "--files-from", |             "--files-from", | ||||||
|             "manifest.txt" |             ManifestFilename | ||||||
|         ], |         ], | ||||||
|         { |         { cwd: archiveFolder } | ||||||
|             cwd: archiveFolder |  | ||||||
|         } |  | ||||||
|     ); |     ); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -20,3 +20,5 @@ export enum Events { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export const CacheFilename = "cache.tar.zst"; | export const CacheFilename = "cache.tar.zst"; | ||||||
|  | 
 | ||||||
|  | export const ManifestFilename = "manifest.txt"; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ import * as io from "@actions/io"; | ||||||
| import { existsSync, writeFileSync } from "fs"; | import { existsSync, writeFileSync } from "fs"; | ||||||
| import * as path from "path"; | import * as path from "path"; | ||||||
| 
 | 
 | ||||||
| import { CacheFilename } from "./constants"; | import { CacheFilename, ManifestFilename } from "./constants"; | ||||||
| 
 | 
 | ||||||
| async function getTarPath(): Promise<string> { | async function getTarPath(): Promise<string> { | ||||||
|     // Explicitly use BSD Tar on Windows
 |     // Explicitly use BSD Tar on Windows
 | ||||||
|  | @ -56,9 +56,8 @@ export async function createTar( | ||||||
|     sourceDirectories: string[] |     sourceDirectories: string[] | ||||||
| ): Promise<void> { | ): Promise<void> { | ||||||
|     // Write source directories to manifest.txt to avoid command length limits
 |     // Write source directories to manifest.txt to avoid command length limits
 | ||||||
|     const manifestFilename = "manifest.txt"; |  | ||||||
|     writeFileSync( |     writeFileSync( | ||||||
|         path.join(archiveFolder, manifestFilename), |         path.join(archiveFolder, ManifestFilename), | ||||||
|         sourceDirectories.join("\n") |         sourceDirectories.join("\n") | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  | @ -71,7 +70,7 @@ export async function createTar( | ||||||
|         "-C", |         "-C", | ||||||
|         workingDirectory, |         workingDirectory, | ||||||
|         "--files-from", |         "--files-from", | ||||||
|         manifestFilename |         ManifestFilename | ||||||
|     ]; |     ]; | ||||||
|     await execTar(args, archiveFolder); |     await execTar(args, archiveFolder); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 BSKY
						BSKY