Share the Windows BSD tar/zstd predicate and prepare archive and workspace
arguments once per command. Parameterize duplicate BSD-tar read tests and
use the real temporary-directory utilities in the concurrency fixture.
Retain the existing concurrency, path-handling, and failure coverage.
Run Windows BSD tar/zstd extraction and listing in private temporary
directories. Concurrent operations previously overwrote cache.tar in the
process working directory and could extract the wrong archive without
reporting an error. Debug listings during cache saves have the same race.
Resolve and quote archive and workspace paths before changing the child
working directory, and remove scratch files on success and failure.
Leave GNU tar, gzip, and the cache archive format unchanged.
Add deterministic regression tests for concurrent reads, relative paths
with spaces, and cleanup after failures in either subprocess.
85bb581273 introduced a call to exportVariable() to export the MSYS env
var, which configures the symlink strategy for MSYS2/cygwin binaries it calls.
By setting the env var globally, this also changes the behaviour of other MSYS2
using tools in a CI job, and also overrides MSYS configuration set by the user,
which I think was not intended.
To avoid this leakage set the MSYS env var only for the commands which
@actions/cache calls.
Fixes#1312
* bsd + zstd fallback implementation
* bsd + zstd fallback implementation
* Fix tar operations
* Add -v option for testing
* Fix order of args for tar
* Add GNUtar as default on windows
* Fix test
* Fix tar tests
* Fix lint issues
* Fix windows gnutar test case
* Temporarily remove thhe condition that prevents zstd usage on windows unless with GNUtar
* Address some comments and correct compression commands
* Add windows bsdtar test
* Fix windows test
* Fix test
* Separate args
* Fix old tests
* Add new tests
* Fix tests
* Fix lint test
* Refactor code
* Address review comments
* Fix test
* Fix tar test
* Add await to async function calls
* Fix test
* Update for beta release
* Fix audit issues
* Add fallback to gzip compression if cache not found
* Fix test
* Add test
* Address review comments
* Revert Address review comments
* Release 3.1.0-beta.2 cache package
* Fix issues
* Reconfigure catch block
* Add debug logging for gzip fall back
* Fix test
* Add end to end test for cache using bsd on windows
and address review comments
* Fix test
* Fix test
* Fix tests
* Add better comments
* Update packages/cache/src/internal/cacheHttpClient.ts
Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>
* Address review comments
* Update for new beta cache package release
* Address bugbash issues
* Fix tests
* Release new actions/cache minor version
Co-authored-by: Lovepreet Singh <pdotl@github.com>
Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>
- Print cache size when saving cache similarly to restoring
- Print restore success similarly to saving
- Print cached file list if debug logging is enabled
See also: https://github.com/actions/cache/issues/471
* Use posix archive format
Signed-off-by: Sora Morimoto <sora@morimoto.io>
* Update package.json and RELEASES.md
Signed-off-by: Sora Morimoto <sora@morimoto.io>