Skip to content

Commit

Permalink
Use zstd short flag version for win runners. Update comments to refle…
Browse files Browse the repository at this point in the history
…ct the same. Fix --d to -d in comments.
  • Loading branch information
lvpx committed Aug 13, 2022
1 parent 63c66cf commit 8bd9e29
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions packages/cache/src/internal/tar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,17 @@ export async function extractTar(
// Create directory to extract tar into
const workingDirectory = getWorkingDirectory()
await io.mkdirP(workingDirectory)
// --d: Decompress.
// -d: Decompress.
// unzstd is equivalent to 'zstd -d'
// --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.
function getCompressionProgram(): string[] {
switch (compressionMethod) {
case CompressionMethod.Zstd:
if (process.platform === 'win32') return ['--use-compress-program=zstd -d --long=30']
return ['--use-compress-program', 'unzstd --long=30']
case CompressionMethod.ZstdWithoutLong:
if (process.platform === 'win32') return ['--use-compress-program=zstd -d']
return ['--use-compress-program', 'unzstd']
default:
return ['-z']
Expand Down Expand Up @@ -100,14 +103,17 @@ export async function createTar(
const workingDirectory = getWorkingDirectory()

// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
// zstdmt is equivalent to 'zstd -T0'
// --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.
// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
function getCompressionProgram(): string[] {
switch (compressionMethod) {
case CompressionMethod.Zstd:
if (process.platform === 'win32') return ['--use-compress-program=zstd -T0 --long=30']
return ['--use-compress-program', 'zstdmt --long=30']
case CompressionMethod.ZstdWithoutLong:
if (process.platform === 'win32') return ['--use-compress-program=zstd -T0']
return ['--use-compress-program', 'zstdmt']
default:
return ['-z']
Expand All @@ -133,15 +139,18 @@ export async function listTar(
archivePath: string,
compressionMethod: CompressionMethod
): Promise<void> {
// --d: Decompress.
// -d: Decompress.
// unzstd is equivalent to 'zstd -d'
// --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.
function getCompressionProgram(): string[] {
switch (compressionMethod) {
case CompressionMethod.Zstd:
if (process.platform === 'win32') return ['--use-compress-program=zstd -d --long=30']
return ['--use-compress-program', 'unzstd --long=30']
case CompressionMethod.ZstdWithoutLong:
if (process.platform === 'win32') return ['--use-compress-program=zstd -d']
return ['--use-compress-program', 'unzstd']
default:
return ['-z']
Expand Down

0 comments on commit 8bd9e29

Please sign in to comment.