From 547a77cf75a4bf831698cb751fbd937acc5a629c Mon Sep 17 00:00:00 2001 From: David Hadka Date: Fri, 9 Apr 2021 13:38:55 -0500 Subject: [PATCH 1/6] Fix permissions issues using gtar on mac --- packages/cache/src/internal/tar.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/cache/src/internal/tar.ts b/packages/cache/src/internal/tar.ts index 1b70dac0..fbea7c2e 100644 --- a/packages/cache/src/internal/tar.ts +++ b/packages/cache/src/internal/tar.ts @@ -26,6 +26,8 @@ async function getTarPath( case 'darwin': { const gnuTar = await io.which('gtar', false) if (gnuTar) { + // fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527 + args.push('--delay-directory-restore') return gnuTar } break From 440a06ef56aecccaf965bcaa1e87b618c36cad78 Mon Sep 17 00:00:00 2001 From: David Hadka Date: Fri, 9 Apr 2021 13:58:35 -0500 Subject: [PATCH 2/6] Update package.json --- packages/cache/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cache/package.json b/packages/cache/package.json index 62dd2bea..7b03e2f5 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@actions/cache", - "version": "1.0.6", + "version": "1.0.7", "preview": true, "description": "Actions cache lib", "keywords": [ From ac7b0e436e917e20675df972505d8aae07f4a5ec Mon Sep 17 00:00:00 2001 From: David Hadka Date: Fri, 9 Apr 2021 13:58:53 -0500 Subject: [PATCH 3/6] Update package-lock.json --- packages/cache/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cache/package-lock.json b/packages/cache/package-lock.json index ab004147..a1a9f8d3 100644 --- a/packages/cache/package-lock.json +++ b/packages/cache/package-lock.json @@ -1,6 +1,6 @@ { "name": "@actions/cache", - "version": "1.0.6", + "version": "1.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { From 74236358e6d0b931d4c036213eec65be014886d3 Mon Sep 17 00:00:00 2001 From: Dave Hadka Date: Fri, 9 Apr 2021 14:10:36 -0500 Subject: [PATCH 4/6] Update tests --- packages/cache/__tests__/tar.test.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/cache/__tests__/tar.test.ts b/packages/cache/__tests__/tar.test.ts index 3f7a1b3b..a62fa3d3 100644 --- a/packages/cache/__tests__/tar.test.ts +++ b/packages/cache/__tests__/tar.test.ts @@ -11,6 +11,7 @@ jest.mock('@actions/exec') jest.mock('@actions/io') const IS_WINDOWS = process.platform === 'win32' +const IS_MAC = process.platform === 'darwin' const defaultTarPath = process.platform === 'darwin' ? 'gtar' : 'tar' @@ -55,7 +56,8 @@ test('zstd extract tar', async () => { '-P', '-C', IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace - ].concat(IS_WINDOWS ? ['--force-local'] : []), + ].concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -84,7 +86,7 @@ test('gzip extract tar', async () => { '-P', '-C', IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace - ], + ].concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -145,7 +147,8 @@ test('zstd create tar', async () => { IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace, '--files-from', 'manifest.txt' - ].concat(IS_WINDOWS ? ['--force-local'] : []), + ].concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), { cwd: archiveFolder } @@ -180,7 +183,7 @@ test('gzip create tar', async () => { IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace, '--files-from', 'manifest.txt' - ], + ].concat(IS_MAC ? ['--delay-directory-restore'] : []), { cwd: archiveFolder } @@ -205,7 +208,8 @@ test('zstd list tar', async () => { '-tf', IS_WINDOWS ? archivePath.replace(/\\/g, '/') : archivePath, '-P' - ].concat(IS_WINDOWS ? ['--force-local'] : []), + ].concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -228,7 +232,8 @@ test('zstdWithoutLong list tar', async () => { '-tf', IS_WINDOWS ? archivePath.replace(/\\/g, '/') : archivePath, '-P' - ].concat(IS_WINDOWS ? ['--force-local'] : []), + ].concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -252,7 +257,7 @@ test('gzip list tar', async () => { '-tf', IS_WINDOWS ? archivePath.replace(/\\/g, '/') : archivePath, '-P' - ], + ].concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) From fac664b5d0557b3d30aac33c20ae855aa9e752d3 Mon Sep 17 00:00:00 2001 From: Dave Hadka Date: Fri, 9 Apr 2021 14:16:19 -0500 Subject: [PATCH 5/6] Fix lint issue --- packages/cache/__tests__/tar.test.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/cache/__tests__/tar.test.ts b/packages/cache/__tests__/tar.test.ts index a62fa3d3..fa81af95 100644 --- a/packages/cache/__tests__/tar.test.ts +++ b/packages/cache/__tests__/tar.test.ts @@ -56,8 +56,9 @@ test('zstd extract tar', async () => { '-P', '-C', IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace - ].concat(IS_WINDOWS ? ['--force-local'] : []) - .concat(IS_MAC ? ['--delay-directory-restore'] : []), + ] + .concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -147,8 +148,9 @@ test('zstd create tar', async () => { IS_WINDOWS ? workspace?.replace(/\\/g, '/') : workspace, '--files-from', 'manifest.txt' - ].concat(IS_WINDOWS ? ['--force-local'] : []) - .concat(IS_MAC ? ['--delay-directory-restore'] : []), + ] + .concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), { cwd: archiveFolder } @@ -208,8 +210,9 @@ test('zstd list tar', async () => { '-tf', IS_WINDOWS ? archivePath.replace(/\\/g, '/') : archivePath, '-P' - ].concat(IS_WINDOWS ? ['--force-local'] : []) - .concat(IS_MAC ? ['--delay-directory-restore'] : []), + ] + .concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) @@ -232,8 +235,9 @@ test('zstdWithoutLong list tar', async () => { '-tf', IS_WINDOWS ? archivePath.replace(/\\/g, '/') : archivePath, '-P' - ].concat(IS_WINDOWS ? ['--force-local'] : []) - .concat(IS_MAC ? ['--delay-directory-restore'] : []), + ] + .concat(IS_WINDOWS ? ['--force-local'] : []) + .concat(IS_MAC ? ['--delay-directory-restore'] : []), {cwd: undefined} ) }) From aad34ab0bc91df1a88e68c2ff0d9065fbb169c08 Mon Sep 17 00:00:00 2001 From: David Hadka Date: Fri, 9 Apr 2021 14:23:05 -0500 Subject: [PATCH 6/6] Update RELEASES.md --- packages/cache/RELEASES.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cache/RELEASES.md b/packages/cache/RELEASES.md index dc3901f9..201b1a8d 100644 --- a/packages/cache/RELEASES.md +++ b/packages/cache/RELEASES.md @@ -36,4 +36,7 @@ ### 1.0.6 - Make caching more verbose [#650](https://github.com/actions/toolkit/pull/650) -- Use GNU tar on macOS if available [#701](https://github.com/actions/toolkit/pull/701) \ No newline at end of file +- Use GNU tar on macOS if available [#701](https://github.com/actions/toolkit/pull/701) + +### 1.0.7 +- Fixes permissions issue extracting archives with GNU tar on macOS ([issue](https://github.com/actions/cache/issues/527))