mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 02:14:19 +08:00 
			
		
		
		
	Use 30 as the long distance matching window to support both 32-bit and 64-bit OS
This commit is contained in:
		
							parent
							
								
									a5d9a3b1a6
								
							
						
					
					
						commit
						75cd46ec0c
					
				| @ -31,4 +31,4 @@ Here are a few things you can do that will increase the likelihood of your pull | ||||
| 
 | ||||
| - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) | ||||
| - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) | ||||
| - [GitHub Help](https://help.github.com) | ||||
| - [GitHub Help](https://help.github.com) | ||||
| @ -12,7 +12,6 @@ jest.mock("@actions/exec"); | ||||
| jest.mock("@actions/io"); | ||||
| 
 | ||||
| const IS_WINDOWS = process.platform === "win32"; | ||||
| const IS_64OS = process.platform != "win32" || process.arch === "x64"; | ||||
| 
 | ||||
| function getTempDir(): string { | ||||
|     return path.join(__dirname, "_temp", "tar"); | ||||
| @ -47,13 +46,12 @@ test("zstd extract tar", async () => { | ||||
|     const tarPath = IS_WINDOWS | ||||
|         ? `${process.env["windir"]}\\System32\\tar.exe` | ||||
|         : "tar"; | ||||
|     const zstdOptions = IS_64OS ? "zstd -d --long=31" : "zstd -d --long=30"; | ||||
|     expect(execMock).toHaveBeenCalledTimes(1); | ||||
|     expect(execMock).toHaveBeenCalledWith( | ||||
|         `"${tarPath}"`, | ||||
|         [ | ||||
|             "--use-compress-program", | ||||
|             zstdOptions, | ||||
|             "zstd -d --long=30", | ||||
|             "-xf", | ||||
|             IS_WINDOWS ? archivePath.replace(/\\/g, "/") : archivePath, | ||||
|             "-P", | ||||
| @ -142,14 +140,13 @@ test("zstd create tar", async () => { | ||||
|     const tarPath = IS_WINDOWS | ||||
|         ? `${process.env["windir"]}\\System32\\tar.exe` | ||||
|         : "tar"; | ||||
|     const zstdOptions = IS_64OS ? "zstd -T0 --long=31" : "zstd -T0 --long=30"; | ||||
| 
 | ||||
|     expect(execMock).toHaveBeenCalledTimes(1); | ||||
|     expect(execMock).toHaveBeenCalledWith( | ||||
|         `"${tarPath}"`, | ||||
|         [ | ||||
|             "--use-compress-program", | ||||
|             zstdOptions, | ||||
|             "zstd -T0 --long=30", | ||||
|             "-cf", | ||||
|             IS_WINDOWS | ||||
|                 ? CacheFilename.Zstd.replace(/\\/g, "/") | ||||
|  | ||||
							
								
								
									
										17
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| @ -5078,22 +5078,17 @@ function getWorkingDirectory() { | ||||
|     var _a; | ||||
|     return _a = process.env["GITHUB_WORKSPACE"], (_a !== null && _a !== void 0 ? _a : process.cwd()); | ||||
| } | ||||
| function isOS64() { | ||||
|     return process.platform != "win32" || process.arch === "x64"; | ||||
| } | ||||
| function extractTar(archivePath, compressionMethod) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         // Create directory to extract tar into
 | ||||
|         const workingDirectory = getWorkingDirectory(); | ||||
|         yield io.mkdirP(workingDirectory); | ||||
|         // --d: Decompress. 
 | ||||
|         // --d: Decompress.
 | ||||
|         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|         // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|         const args = [ | ||||
|             ...(compressionMethod == constants_1.CompressionMethod.Zstd | ||||
|                 ? [ | ||||
|                     "--use-compress-program", | ||||
|                     isOS64() ? "zstd -d --long=31" : "zstd -d --long=30" | ||||
|                 ] | ||||
|                 ? ["--use-compress-program", "zstd -d --long=30"] | ||||
|                 : ["-z"]), | ||||
|             "-xf", | ||||
|             archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
| @ -5113,13 +5108,11 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) { | ||||
|         fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join("\n")); | ||||
|         // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | ||||
|         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|         // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|         const workingDirectory = getWorkingDirectory(); | ||||
|         const args = [ | ||||
|             ...(compressionMethod == constants_1.CompressionMethod.Zstd | ||||
|                 ? [ | ||||
|                     "--use-compress-program", | ||||
|                     isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30" | ||||
|                 ] | ||||
|                 ? ["--use-compress-program", "zstd -T0 --long=30"] | ||||
|                 : ["-z"]), | ||||
|             "-cf", | ||||
|             cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
|  | ||||
							
								
								
									
										17
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							| @ -5055,22 +5055,17 @@ function getWorkingDirectory() { | ||||
|     var _a; | ||||
|     return _a = process.env["GITHUB_WORKSPACE"], (_a !== null && _a !== void 0 ? _a : process.cwd()); | ||||
| } | ||||
| function isOS64() { | ||||
|     return process.platform != "win32" || process.arch === "x64"; | ||||
| } | ||||
| function extractTar(archivePath, compressionMethod) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         // Create directory to extract tar into
 | ||||
|         const workingDirectory = getWorkingDirectory(); | ||||
|         yield io.mkdirP(workingDirectory); | ||||
|         // --d: Decompress. 
 | ||||
|         // --d: Decompress.
 | ||||
|         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|         // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|         const args = [ | ||||
|             ...(compressionMethod == constants_1.CompressionMethod.Zstd | ||||
|                 ? [ | ||||
|                     "--use-compress-program", | ||||
|                     isOS64() ? "zstd -d --long=31" : "zstd -d --long=30" | ||||
|                 ] | ||||
|                 ? ["--use-compress-program", "zstd -d --long=30"] | ||||
|                 : ["-z"]), | ||||
|             "-xf", | ||||
|             archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
| @ -5090,13 +5085,11 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) { | ||||
|         fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join("\n")); | ||||
|         // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | ||||
|         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|         // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|         const workingDirectory = getWorkingDirectory(); | ||||
|         const args = [ | ||||
|             ...(compressionMethod == constants_1.CompressionMethod.Zstd | ||||
|                 ? [ | ||||
|                     "--use-compress-program", | ||||
|                     isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30" | ||||
|                 ] | ||||
|                 ? ["--use-compress-program", "zstd -T0 --long=30"] | ||||
|                 : ["-z"]), | ||||
|             "-cf", | ||||
|             cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
|  | ||||
							
								
								
									
										16
									
								
								src/tar.ts
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/tar.ts
									
									
									
									
									
								
							| @ -32,10 +32,6 @@ function getWorkingDirectory(): string { | ||||
|     return process.env["GITHUB_WORKSPACE"] ?? process.cwd(); | ||||
| } | ||||
| 
 | ||||
| function isOS64(): boolean { | ||||
|     return process.platform != "win32" || process.arch === "x64"; | ||||
| } | ||||
| 
 | ||||
| export async function extractTar( | ||||
|     archivePath: string, | ||||
|     compressionMethod: CompressionMethod | ||||
| @ -45,12 +41,10 @@ export async function extractTar( | ||||
|     await io.mkdirP(workingDirectory); | ||||
|     // --d: Decompress.
 | ||||
|     // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|     // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|     const args = [ | ||||
|         ...(compressionMethod == CompressionMethod.Zstd | ||||
|             ? [ | ||||
|                   "--use-compress-program", | ||||
|                   isOS64() ? "zstd -d --long=31" : "zstd -d --long=30" | ||||
|               ] | ||||
|             ? ["--use-compress-program", "zstd -d --long=30"] | ||||
|             : ["-z"]), | ||||
|         "-xf", | ||||
|         archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
| @ -75,13 +69,11 @@ export async function createTar( | ||||
|     ); | ||||
|     // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | ||||
|     // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | ||||
|     // Using 30 here because we also support 32-bit self-hosted runners.
 | ||||
|     const workingDirectory = getWorkingDirectory(); | ||||
|     const args = [ | ||||
|         ...(compressionMethod == CompressionMethod.Zstd | ||||
|             ? [ | ||||
|                   "--use-compress-program", | ||||
|                   isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30" | ||||
|               ] | ||||
|             ? ["--use-compress-program", "zstd -T0 --long=30"] | ||||
|             : ["-z"]), | ||||
|         "-cf", | ||||
|         cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Aiqiao Yan
						Aiqiao Yan