@actions/cache 3.1.1 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cache.d.ts +4 -2
- package/lib/cache.js +7 -3
- package/lib/cache.js.map +1 -1
- package/lib/internal/cacheHttpClient.d.ts +1 -1
- package/lib/internal/cacheHttpClient.js +15 -7
- package/lib/internal/cacheHttpClient.js.map +1 -1
- package/lib/internal/cacheUtils.d.ts +1 -1
- package/lib/internal/cacheUtils.js +6 -7
- package/lib/internal/cacheUtils.js.map +1 -1
- package/lib/internal/constants.d.ts +8 -0
- package/lib/internal/constants.js +11 -0
- package/lib/internal/constants.js.map +1 -1
- package/lib/internal/tar.js +179 -87
- package/lib/internal/tar.js.map +1 -1
- package/package.json +1 -1
package/lib/cache.d.ts
CHANGED
|
@@ -18,15 +18,17 @@ export declare function isFeatureAvailable(): boolean;
|
|
|
18
18
|
* @param primaryKey an explicit key for restoring the cache
|
|
19
19
|
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for key
|
|
20
20
|
* @param downloadOptions cache download options
|
|
21
|
+
* @param enableCrossOsArchive an optional boolean enabled to restore on windows any cache created on any platform
|
|
21
22
|
* @returns string returns the key for the cache hit, otherwise returns undefined
|
|
22
23
|
*/
|
|
23
|
-
export declare function restoreCache(paths: string[], primaryKey: string, restoreKeys?: string[], options?: DownloadOptions): Promise<string | undefined>;
|
|
24
|
+
export declare function restoreCache(paths: string[], primaryKey: string, restoreKeys?: string[], options?: DownloadOptions, enableCrossOsArchive?: boolean): Promise<string | undefined>;
|
|
24
25
|
/**
|
|
25
26
|
* Saves a list of files with the specified key
|
|
26
27
|
*
|
|
27
28
|
* @param paths a list of file paths to be cached
|
|
28
29
|
* @param key an explicit key for restoring the cache
|
|
30
|
+
* @param enableCrossOsArchive an optional boolean enabled to save cache on windows which could be restored on any platform
|
|
29
31
|
* @param options cache upload options
|
|
30
32
|
* @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
|
|
31
33
|
*/
|
|
32
|
-
export declare function saveCache(paths: string[], key: string, options?: UploadOptions): Promise<number>;
|
|
34
|
+
export declare function saveCache(paths: string[], key: string, options?: UploadOptions, enableCrossOsArchive?: boolean): Promise<number>;
|
package/lib/cache.js
CHANGED
|
@@ -67,9 +67,10 @@ exports.isFeatureAvailable = isFeatureAvailable;
|
|
|
67
67
|
* @param primaryKey an explicit key for restoring the cache
|
|
68
68
|
* @param restoreKeys an optional ordered list of keys to use for restoring the cache if no cache hit occurred for key
|
|
69
69
|
* @param downloadOptions cache download options
|
|
70
|
+
* @param enableCrossOsArchive an optional boolean enabled to restore on windows any cache created on any platform
|
|
70
71
|
* @returns string returns the key for the cache hit, otherwise returns undefined
|
|
71
72
|
*/
|
|
72
|
-
function restoreCache(paths, primaryKey, restoreKeys, options) {
|
|
73
|
+
function restoreCache(paths, primaryKey, restoreKeys, options, enableCrossOsArchive = false) {
|
|
73
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
75
|
checkPaths(paths);
|
|
75
76
|
restoreKeys = restoreKeys || [];
|
|
@@ -87,7 +88,8 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
|
|
|
87
88
|
try {
|
|
88
89
|
// path are needed to compute version
|
|
89
90
|
const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
|
|
90
|
-
compressionMethod
|
|
91
|
+
compressionMethod,
|
|
92
|
+
enableCrossOsArchive
|
|
91
93
|
});
|
|
92
94
|
if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
|
|
93
95
|
// Cache not found
|
|
@@ -134,10 +136,11 @@ exports.restoreCache = restoreCache;
|
|
|
134
136
|
*
|
|
135
137
|
* @param paths a list of file paths to be cached
|
|
136
138
|
* @param key an explicit key for restoring the cache
|
|
139
|
+
* @param enableCrossOsArchive an optional boolean enabled to save cache on windows which could be restored on any platform
|
|
137
140
|
* @param options cache upload options
|
|
138
141
|
* @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
|
|
139
142
|
*/
|
|
140
|
-
function saveCache(paths, key, options) {
|
|
143
|
+
function saveCache(paths, key, options, enableCrossOsArchive = false) {
|
|
141
144
|
var _a, _b, _c, _d, _e;
|
|
142
145
|
return __awaiter(this, void 0, void 0, function* () {
|
|
143
146
|
checkPaths(paths);
|
|
@@ -168,6 +171,7 @@ function saveCache(paths, key, options) {
|
|
|
168
171
|
core.debug('Reserving Cache');
|
|
169
172
|
const reserveCacheResponse = yield cacheHttpClient.reserveCache(key, paths, {
|
|
170
173
|
compressionMethod,
|
|
174
|
+
enableCrossOsArchive,
|
|
171
175
|
cacheSize: archiveFileSize
|
|
172
176
|
});
|
|
173
177
|
if ((_a = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _a === void 0 ? void 0 : _a.cacheId) {
|
package/lib/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oDAAqC;AACrC,2CAA4B;AAC5B,6DAA8C;AAC9C,4EAA6D;AAC7D,wCAA6D;AAG7D,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;CACF;AAND,0CAMC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC1D,CAAC;CACF;AAND,8CAMC;AAED,SAAS,UAAU,CAAC,KAAe;IACjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,MAAM,IAAI,eAAe,CACvB,wEAAwE,CACzE,CAAA;KACF;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;QACpB,MAAM,IAAI,eAAe,CACvB,yBAAyB,GAAG,wCAAwC,CACrE,CAAA;KACF;IACD,MAAM,KAAK,GAAG,SAAS,CAAA;IACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,eAAe,CACvB,yBAAyB,GAAG,yBAAyB,CACtD,CAAA;KACF;AACH,CAAC;AAED;;;;GAIG;AAEH,SAAgB,kBAAkB;IAChC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAC3C,CAAC;AAFD,gDAEC;AAED
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CompressionMethod } from './constants';
|
|
2
2
|
import { ArtifactCacheEntry, InternalCacheOptions, ReserveCacheResponse, ITypedResponseWithError } from './contracts';
|
|
3
3
|
import { DownloadOptions, UploadOptions } from '../options';
|
|
4
|
-
export declare function getCacheVersion(paths: string[], compressionMethod?: CompressionMethod): string;
|
|
4
|
+
export declare function getCacheVersion(paths: string[], compressionMethod?: CompressionMethod, enableCrossOsArchive?: boolean): string;
|
|
5
5
|
export declare function getCacheEntry(keys: string[], paths: string[], options?: InternalCacheOptions): Promise<ArtifactCacheEntry | null>;
|
|
6
6
|
export declare function downloadCache(archiveLocation: string, archivePath: string, options?: DownloadOptions): Promise<void>;
|
|
7
7
|
export declare function reserveCache(key: string, paths: string[], options?: InternalCacheOptions): Promise<ITypedResponseWithError<ReserveCacheResponse>>;
|
|
@@ -23,7 +23,6 @@ const crypto = __importStar(require("crypto"));
|
|
|
23
23
|
const fs = __importStar(require("fs"));
|
|
24
24
|
const url_1 = require("url");
|
|
25
25
|
const utils = __importStar(require("./cacheUtils"));
|
|
26
|
-
const constants_1 = require("./constants");
|
|
27
26
|
const downloadUtils_1 = require("./downloadUtils");
|
|
28
27
|
const options_1 = require("../options");
|
|
29
28
|
const requestUtils_1 = require("./requestUtils");
|
|
@@ -53,10 +52,17 @@ function createHttpClient() {
|
|
|
53
52
|
const bearerCredentialHandler = new auth_1.BearerCredentialHandler(token);
|
|
54
53
|
return new http_client_1.HttpClient('actions/cache', [bearerCredentialHandler], getRequestOptions());
|
|
55
54
|
}
|
|
56
|
-
function getCacheVersion(paths, compressionMethod) {
|
|
57
|
-
const components = paths
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false) {
|
|
56
|
+
const components = paths;
|
|
57
|
+
// Add compression method to cache version to restore
|
|
58
|
+
// compressed cache as per compression method
|
|
59
|
+
if (compressionMethod) {
|
|
60
|
+
components.push(compressionMethod);
|
|
61
|
+
}
|
|
62
|
+
// Only check for windows platforms if enableCrossOsArchive is false
|
|
63
|
+
if (process.platform === 'win32' && !enableCrossOsArchive) {
|
|
64
|
+
components.push('windows-only');
|
|
65
|
+
}
|
|
60
66
|
// Add salt to cache version to support breaking changes in cache entry
|
|
61
67
|
components.push(versionSalt);
|
|
62
68
|
return crypto
|
|
@@ -68,9 +74,10 @@ exports.getCacheVersion = getCacheVersion;
|
|
|
68
74
|
function getCacheEntry(keys, paths, options) {
|
|
69
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
76
|
const httpClient = createHttpClient();
|
|
71
|
-
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
|
|
77
|
+
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
|
72
78
|
const resource = `cache?keys=${encodeURIComponent(keys.join(','))}&version=${version}`;
|
|
73
79
|
const response = yield requestUtils_1.retryTypedResponse('getCacheEntry', () => __awaiter(this, void 0, void 0, function* () { return httpClient.getJson(getCacheApiUrl(resource)); }));
|
|
80
|
+
// Cache not found
|
|
74
81
|
if (response.statusCode === 204) {
|
|
75
82
|
// List cache for primary key only if cache miss occurs
|
|
76
83
|
if (core.isDebug()) {
|
|
@@ -84,6 +91,7 @@ function getCacheEntry(keys, paths, options) {
|
|
|
84
91
|
const cacheResult = response.result;
|
|
85
92
|
const cacheDownloadUrl = cacheResult === null || cacheResult === void 0 ? void 0 : cacheResult.archiveLocation;
|
|
86
93
|
if (!cacheDownloadUrl) {
|
|
94
|
+
// Cache achiveLocation not found. This should never happen, and hence bail out.
|
|
87
95
|
throw new Error('Cache not found.');
|
|
88
96
|
}
|
|
89
97
|
core.setSecret(cacheDownloadUrl);
|
|
@@ -129,7 +137,7 @@ exports.downloadCache = downloadCache;
|
|
|
129
137
|
function reserveCache(key, paths, options) {
|
|
130
138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
131
139
|
const httpClient = createHttpClient();
|
|
132
|
-
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
|
|
140
|
+
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod, options === null || options === void 0 ? void 0 : options.enableCrossOsArchive);
|
|
133
141
|
const reserveCacheRequest = {
|
|
134
142
|
key,
|
|
135
143
|
version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheHttpClient.js","sourceRoot":"","sources":["../../src/internal/cacheHttpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oDAAqC;AACrC,sDAA+C;AAC/C,wDAAqE;AAKrE,+CAAgC;AAChC,uCAAwB;AACxB,6BAAuB;AAEvB,oDAAqC;
|
|
1
|
+
{"version":3,"file":"cacheHttpClient.js","sourceRoot":"","sources":["../../src/internal/cacheHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,6 @@ export declare function resolvePaths(patterns: string[]): Promise<string[]>;
|
|
|
7
7
|
export declare function unlinkFile(filePath: fs.PathLike): Promise<void>;
|
|
8
8
|
export declare function getCompressionMethod(): Promise<CompressionMethod>;
|
|
9
9
|
export declare function getCacheFileName(compressionMethod: CompressionMethod): string;
|
|
10
|
-
export declare function
|
|
10
|
+
export declare function getGnuTarPathOnWindows(): Promise<string>;
|
|
11
11
|
export declare function assertDefined<T>(name: string, value?: T): T;
|
|
12
12
|
export declare function isGhes(): boolean;
|
|
@@ -132,10 +132,6 @@ function getVersion(app) {
|
|
|
132
132
|
// Use zstandard if possible to maximize cache performance
|
|
133
133
|
function getCompressionMethod() {
|
|
134
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
if (process.platform === 'win32' && !(yield isGnuTarInstalled())) {
|
|
136
|
-
// Disable zstd due to bug https://github.com/actions/cache/issues/301
|
|
137
|
-
return constants_1.CompressionMethod.Gzip;
|
|
138
|
-
}
|
|
139
135
|
const versionOutput = yield getVersion('zstd');
|
|
140
136
|
const version = semver.clean(versionOutput);
|
|
141
137
|
if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
|
|
@@ -159,13 +155,16 @@ function getCacheFileName(compressionMethod) {
|
|
|
159
155
|
: constants_1.CacheFilename.Zstd;
|
|
160
156
|
}
|
|
161
157
|
exports.getCacheFileName = getCacheFileName;
|
|
162
|
-
function
|
|
158
|
+
function getGnuTarPathOnWindows() {
|
|
163
159
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
if (fs.existsSync(constants_1.GnuTarPathOnWindows)) {
|
|
161
|
+
return constants_1.GnuTarPathOnWindows;
|
|
162
|
+
}
|
|
164
163
|
const versionOutput = yield getVersion('tar');
|
|
165
|
-
return versionOutput.toLowerCase().includes('gnu tar');
|
|
164
|
+
return versionOutput.toLowerCase().includes('gnu tar') ? io.which('tar') : '';
|
|
166
165
|
});
|
|
167
166
|
}
|
|
168
|
-
exports.
|
|
167
|
+
exports.getGnuTarPathOnWindows = getGnuTarPathOnWindows;
|
|
169
168
|
function assertDefined(name, value) {
|
|
170
169
|
if (value === undefined) {
|
|
171
170
|
throw Error(`Expected ${name} but value was undefiend`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheUtils.js","sourceRoot":"","sources":["../../src/internal/cacheUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAqC;AACrC,oDAAqC;AACrC,oDAAqC;AACrC,gDAAiC;AACjC,uCAAwB;AACxB,2CAA4B;AAC5B,+CAAgC;AAChC,2CAA4B;AAC5B,+BAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"cacheUtils.js","sourceRoot":"","sources":["../../src/internal/cacheUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,14 @@ export declare enum CompressionMethod {
|
|
|
7
7
|
ZstdWithoutLong = "zstd-without-long",
|
|
8
8
|
Zstd = "zstd"
|
|
9
9
|
}
|
|
10
|
+
export declare enum ArchiveToolType {
|
|
11
|
+
GNU = "gnu",
|
|
12
|
+
BSD = "bsd"
|
|
13
|
+
}
|
|
10
14
|
export declare const DefaultRetryAttempts = 2;
|
|
11
15
|
export declare const DefaultRetryDelay = 5000;
|
|
12
16
|
export declare const SocketTimeout = 5000;
|
|
17
|
+
export declare const GnuTarPathOnWindows: string;
|
|
18
|
+
export declare const SystemTarPathOnWindows: string;
|
|
19
|
+
export declare const TarFilename = "cache.tar";
|
|
20
|
+
export declare const ManifestFilename = "manifest.txt";
|
|
@@ -13,6 +13,11 @@ var CompressionMethod;
|
|
|
13
13
|
CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
|
|
14
14
|
CompressionMethod["Zstd"] = "zstd";
|
|
15
15
|
})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
|
|
16
|
+
var ArchiveToolType;
|
|
17
|
+
(function (ArchiveToolType) {
|
|
18
|
+
ArchiveToolType["GNU"] = "gnu";
|
|
19
|
+
ArchiveToolType["BSD"] = "bsd";
|
|
20
|
+
})(ArchiveToolType = exports.ArchiveToolType || (exports.ArchiveToolType = {}));
|
|
16
21
|
// The default number of retry attempts.
|
|
17
22
|
exports.DefaultRetryAttempts = 2;
|
|
18
23
|
// The default delay in milliseconds between retry attempts.
|
|
@@ -21,4 +26,10 @@ exports.DefaultRetryDelay = 5000;
|
|
|
21
26
|
// over the socket during this period, the socket is destroyed and the download
|
|
22
27
|
// is aborted.
|
|
23
28
|
exports.SocketTimeout = 5000;
|
|
29
|
+
// The default path of GNUtar on hosted Windows runners
|
|
30
|
+
exports.GnuTarPathOnWindows = `${process.env['PROGRAMFILES']}\\Git\\usr\\bin\\tar.exe`;
|
|
31
|
+
// The default path of BSDtar on hosted Windows runners
|
|
32
|
+
exports.SystemTarPathOnWindows = `${process.env['SYSTEMDRIVE']}\\Windows\\System32\\tar.exe`;
|
|
33
|
+
exports.TarFilename = 'cache.tar';
|
|
34
|
+
exports.ManifestFilename = 'manifest.txt';
|
|
24
35
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":";;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,mCAAkB,CAAA;IAClB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAED,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,+CAA+C;IAC/C,6EAA6E;IAC7E,0DAAqC,CAAA;IACrC,kCAAa,CAAA;AACf,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAED,wCAAwC;AAC3B,QAAA,oBAAoB,GAAG,CAAC,CAAA;AAErC,4DAA4D;AAC/C,QAAA,iBAAiB,GAAG,IAAI,CAAA;AAErC,6EAA6E;AAC7E,+EAA+E;AAC/E,cAAc;AACD,QAAA,aAAa,GAAG,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":";;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,mCAAkB,CAAA;IAClB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAED,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,+CAA+C;IAC/C,6EAA6E;IAC7E,0DAAqC,CAAA;IACrC,kCAAa,CAAA;AACf,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,8BAAW,CAAA;AACb,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,wCAAwC;AAC3B,QAAA,oBAAoB,GAAG,CAAC,CAAA;AAErC,4DAA4D;AAC/C,QAAA,iBAAiB,GAAG,IAAI,CAAA;AAErC,6EAA6E;AAC7E,+EAA+E;AAC/E,cAAc;AACD,QAAA,aAAa,GAAG,IAAI,CAAA;AAEjC,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,0BAA0B,CAAA;AAE3F,uDAAuD;AAC1C,QAAA,sBAAsB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,8BAA8B,CAAA;AAEpF,QAAA,WAAW,GAAG,WAAW,CAAA;AAEzB,QAAA,gBAAgB,GAAG,cAAc,CAAA"}
|
package/lib/internal/tar.js
CHANGED
|
@@ -17,27 +17,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
const exec_1 = require("@actions/exec");
|
|
20
|
+
const core_1 = require("@actions/core");
|
|
20
21
|
const io = __importStar(require("@actions/io"));
|
|
21
22
|
const fs_1 = require("fs");
|
|
22
23
|
const path = __importStar(require("path"));
|
|
23
24
|
const utils = __importStar(require("./cacheUtils"));
|
|
24
25
|
const constants_1 = require("./constants");
|
|
25
26
|
const IS_WINDOWS = process.platform === 'win32';
|
|
26
|
-
|
|
27
|
+
core_1.exportVariable('MSYS', 'winsymlinks:nativestrict');
|
|
28
|
+
// Returns tar path and type: BSD or GNU
|
|
29
|
+
function getTarPath() {
|
|
27
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
31
|
switch (process.platform) {
|
|
29
32
|
case 'win32': {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
|
|
33
|
+
const gnuTar = yield utils.getGnuTarPathOnWindows();
|
|
34
|
+
const systemTar = constants_1.SystemTarPathOnWindows;
|
|
35
|
+
if (gnuTar) {
|
|
36
|
+
// Use GNUtar as default on windows
|
|
37
|
+
return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
|
|
35
38
|
}
|
|
36
39
|
else if (fs_1.existsSync(systemTar)) {
|
|
37
|
-
return systemTar;
|
|
38
|
-
}
|
|
39
|
-
else if (yield utils.isGnuTarInstalled()) {
|
|
40
|
-
args.push('--force-local');
|
|
40
|
+
return { path: systemTar, type: constants_1.ArchiveToolType.BSD };
|
|
41
41
|
}
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
@@ -45,25 +45,92 @@ function getTarPath(args, compressionMethod) {
|
|
|
45
45
|
const gnuTar = yield io.which('gtar', false);
|
|
46
46
|
if (gnuTar) {
|
|
47
47
|
// fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return {
|
|
52
|
+
path: yield io.which('tar', true),
|
|
53
|
+
type: constants_1.ArchiveToolType.BSD
|
|
54
|
+
};
|
|
50
55
|
}
|
|
51
|
-
break;
|
|
52
56
|
}
|
|
53
57
|
default:
|
|
54
58
|
break;
|
|
55
59
|
}
|
|
56
|
-
|
|
60
|
+
// Default assumption is GNU tar is present in path
|
|
61
|
+
return {
|
|
62
|
+
path: yield io.which('tar', true),
|
|
63
|
+
type: constants_1.ArchiveToolType.GNU
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Return arguments for tar as per tarPath, compressionMethod, method type and os
|
|
68
|
+
function getTarArgs(tarPath, compressionMethod, type, archivePath = '') {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const args = [`"${tarPath.path}"`];
|
|
71
|
+
const cacheFileName = utils.getCacheFileName(compressionMethod);
|
|
72
|
+
const tarFile = 'cache.tar';
|
|
73
|
+
const workingDirectory = getWorkingDirectory();
|
|
74
|
+
// Speficic args for BSD tar on windows for workaround
|
|
75
|
+
const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
|
|
76
|
+
compressionMethod !== constants_1.CompressionMethod.Gzip &&
|
|
77
|
+
IS_WINDOWS;
|
|
78
|
+
// Method specific args
|
|
79
|
+
switch (type) {
|
|
80
|
+
case 'create':
|
|
81
|
+
args.push('--posix', '-cf', BSD_TAR_ZSTD
|
|
82
|
+
? tarFile
|
|
83
|
+
: cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--exclude', BSD_TAR_ZSTD
|
|
84
|
+
? tarFile
|
|
85
|
+
: cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--files-from', constants_1.ManifestFilename);
|
|
86
|
+
break;
|
|
87
|
+
case 'extract':
|
|
88
|
+
args.push('-xf', BSD_TAR_ZSTD
|
|
89
|
+
? tarFile
|
|
90
|
+
: archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'));
|
|
91
|
+
break;
|
|
92
|
+
case 'list':
|
|
93
|
+
args.push('-tf', BSD_TAR_ZSTD
|
|
94
|
+
? tarFile
|
|
95
|
+
: archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P');
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
// Platform specific args
|
|
99
|
+
if (tarPath.type === constants_1.ArchiveToolType.GNU) {
|
|
100
|
+
switch (process.platform) {
|
|
101
|
+
case 'win32':
|
|
102
|
+
args.push('--force-local');
|
|
103
|
+
break;
|
|
104
|
+
case 'darwin':
|
|
105
|
+
args.push('--delay-directory-restore');
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return args;
|
|
57
110
|
});
|
|
58
111
|
}
|
|
59
|
-
|
|
112
|
+
// Returns commands to run tar and compression program
|
|
113
|
+
function getCommands(compressionMethod, type, archivePath = '') {
|
|
60
114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
|
|
62
|
-
|
|
115
|
+
let args;
|
|
116
|
+
const tarPath = yield getTarPath();
|
|
117
|
+
const tarArgs = yield getTarArgs(tarPath, compressionMethod, type, archivePath);
|
|
118
|
+
const compressionArgs = type !== 'create'
|
|
119
|
+
? yield getDecompressionProgram(tarPath, compressionMethod, archivePath)
|
|
120
|
+
: yield getCompressionProgram(tarPath, compressionMethod);
|
|
121
|
+
const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
|
|
122
|
+
compressionMethod !== constants_1.CompressionMethod.Gzip &&
|
|
123
|
+
IS_WINDOWS;
|
|
124
|
+
if (BSD_TAR_ZSTD && type !== 'create') {
|
|
125
|
+
args = [[...compressionArgs].join(' '), [...tarArgs].join(' ')];
|
|
63
126
|
}
|
|
64
|
-
|
|
65
|
-
|
|
127
|
+
else {
|
|
128
|
+
args = [[...tarArgs].join(' '), [...compressionArgs].join(' ')];
|
|
66
129
|
}
|
|
130
|
+
if (BSD_TAR_ZSTD) {
|
|
131
|
+
return args;
|
|
132
|
+
}
|
|
133
|
+
return [args.join(' ')];
|
|
67
134
|
});
|
|
68
135
|
}
|
|
69
136
|
function getWorkingDirectory() {
|
|
@@ -71,91 +138,116 @@ function getWorkingDirectory() {
|
|
|
71
138
|
return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
|
|
72
139
|
}
|
|
73
140
|
// Common function for extractTar and listTar to get the compression method
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
141
|
+
function getDecompressionProgram(tarPath, compressionMethod, archivePath) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
// -d: Decompress.
|
|
144
|
+
// unzstd is equivalent to 'zstd -d'
|
|
145
|
+
// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
|
|
146
|
+
// Using 30 here because we also support 32-bit self-hosted runners.
|
|
147
|
+
const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
|
|
148
|
+
compressionMethod !== constants_1.CompressionMethod.Gzip &&
|
|
149
|
+
IS_WINDOWS;
|
|
150
|
+
switch (compressionMethod) {
|
|
151
|
+
case constants_1.CompressionMethod.Zstd:
|
|
152
|
+
return BSD_TAR_ZSTD
|
|
153
|
+
? [
|
|
154
|
+
'zstd -d --long=30 --force -o',
|
|
155
|
+
constants_1.TarFilename,
|
|
156
|
+
archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
|
|
157
|
+
]
|
|
158
|
+
: [
|
|
159
|
+
'--use-compress-program',
|
|
160
|
+
IS_WINDOWS ? '"zstd -d --long=30"' : 'unzstd --long=30'
|
|
161
|
+
];
|
|
162
|
+
case constants_1.CompressionMethod.ZstdWithoutLong:
|
|
163
|
+
return BSD_TAR_ZSTD
|
|
164
|
+
? [
|
|
165
|
+
'zstd -d --force -o',
|
|
166
|
+
constants_1.TarFilename,
|
|
167
|
+
archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
|
|
168
|
+
]
|
|
169
|
+
: ['--use-compress-program', IS_WINDOWS ? '"zstd -d"' : 'unzstd'];
|
|
170
|
+
default:
|
|
171
|
+
return ['-z'];
|
|
172
|
+
}
|
|
173
|
+
});
|
|
90
174
|
}
|
|
175
|
+
// Used for creating the archive
|
|
176
|
+
// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
|
|
177
|
+
// zstdmt is equivalent to 'zstd -T0'
|
|
178
|
+
// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
|
|
179
|
+
// Using 30 here because we also support 32-bit self-hosted runners.
|
|
180
|
+
// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
|
|
181
|
+
function getCompressionProgram(tarPath, compressionMethod) {
|
|
182
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
const cacheFileName = utils.getCacheFileName(compressionMethod);
|
|
184
|
+
const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
|
|
185
|
+
compressionMethod !== constants_1.CompressionMethod.Gzip &&
|
|
186
|
+
IS_WINDOWS;
|
|
187
|
+
switch (compressionMethod) {
|
|
188
|
+
case constants_1.CompressionMethod.Zstd:
|
|
189
|
+
return BSD_TAR_ZSTD
|
|
190
|
+
? [
|
|
191
|
+
'zstd -T0 --long=30 --force -o',
|
|
192
|
+
cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
193
|
+
constants_1.TarFilename
|
|
194
|
+
]
|
|
195
|
+
: [
|
|
196
|
+
'--use-compress-program',
|
|
197
|
+
IS_WINDOWS ? '"zstd -T0 --long=30"' : 'zstdmt --long=30'
|
|
198
|
+
];
|
|
199
|
+
case constants_1.CompressionMethod.ZstdWithoutLong:
|
|
200
|
+
return BSD_TAR_ZSTD
|
|
201
|
+
? [
|
|
202
|
+
'zstd -T0 --force -o',
|
|
203
|
+
cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
204
|
+
constants_1.TarFilename
|
|
205
|
+
]
|
|
206
|
+
: ['--use-compress-program', IS_WINDOWS ? '"zstd -T0"' : 'zstdmt'];
|
|
207
|
+
default:
|
|
208
|
+
return ['-z'];
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
// Executes all commands as separate processes
|
|
213
|
+
function execCommands(commands, cwd) {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
215
|
+
for (const command of commands) {
|
|
216
|
+
try {
|
|
217
|
+
yield exec_1.exec(command, undefined, { cwd });
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
throw new Error(`${command.split(' ')[0]} failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
// List the contents of a tar
|
|
91
226
|
function listTar(archivePath, compressionMethod) {
|
|
92
227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
'-tf',
|
|
96
|
-
archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
97
|
-
'-P'
|
|
98
|
-
];
|
|
99
|
-
yield execTar(args, compressionMethod);
|
|
228
|
+
const commands = yield getCommands(compressionMethod, 'list', archivePath);
|
|
229
|
+
yield execCommands(commands);
|
|
100
230
|
});
|
|
101
231
|
}
|
|
102
232
|
exports.listTar = listTar;
|
|
233
|
+
// Extract a tar
|
|
103
234
|
function extractTar(archivePath, compressionMethod) {
|
|
104
235
|
return __awaiter(this, void 0, void 0, function* () {
|
|
105
236
|
// Create directory to extract tar into
|
|
106
237
|
const workingDirectory = getWorkingDirectory();
|
|
107
238
|
yield io.mkdirP(workingDirectory);
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
'-xf',
|
|
111
|
-
archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
112
|
-
'-P',
|
|
113
|
-
'-C',
|
|
114
|
-
workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
|
|
115
|
-
];
|
|
116
|
-
yield execTar(args, compressionMethod);
|
|
239
|
+
const commands = yield getCommands(compressionMethod, 'extract', archivePath);
|
|
240
|
+
yield execCommands(commands);
|
|
117
241
|
});
|
|
118
242
|
}
|
|
119
243
|
exports.extractTar = extractTar;
|
|
244
|
+
// Create a tar
|
|
120
245
|
function createTar(archiveFolder, sourceDirectories, compressionMethod) {
|
|
121
246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
122
247
|
// Write source directories to manifest.txt to avoid command length limits
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
const workingDirectory = getWorkingDirectory();
|
|
127
|
-
// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
|
|
128
|
-
// zstdmt is equivalent to 'zstd -T0'
|
|
129
|
-
// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
|
|
130
|
-
// Using 30 here because we also support 32-bit self-hosted runners.
|
|
131
|
-
// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
|
|
132
|
-
function getCompressionProgram() {
|
|
133
|
-
switch (compressionMethod) {
|
|
134
|
-
case constants_1.CompressionMethod.Zstd:
|
|
135
|
-
return [
|
|
136
|
-
'--use-compress-program',
|
|
137
|
-
IS_WINDOWS ? 'zstd -T0 --long=30' : 'zstdmt --long=30'
|
|
138
|
-
];
|
|
139
|
-
case constants_1.CompressionMethod.ZstdWithoutLong:
|
|
140
|
-
return ['--use-compress-program', IS_WINDOWS ? 'zstd -T0' : 'zstdmt'];
|
|
141
|
-
default:
|
|
142
|
-
return ['-z'];
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
const args = [
|
|
146
|
-
'--posix',
|
|
147
|
-
...getCompressionProgram(),
|
|
148
|
-
'-cf',
|
|
149
|
-
cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
150
|
-
'--exclude',
|
|
151
|
-
cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
152
|
-
'-P',
|
|
153
|
-
'-C',
|
|
154
|
-
workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
|
|
155
|
-
'--files-from',
|
|
156
|
-
manifestFilename
|
|
157
|
-
];
|
|
158
|
-
yield execTar(args, compressionMethod, archiveFolder);
|
|
248
|
+
fs_1.writeFileSync(path.join(archiveFolder, constants_1.ManifestFilename), sourceDirectories.join('\n'));
|
|
249
|
+
const commands = yield getCommands(compressionMethod, 'create');
|
|
250
|
+
yield execCommands(commands, archiveFolder);
|
|
159
251
|
});
|
|
160
252
|
}
|
|
161
253
|
exports.createTar = createTar;
|
package/lib/internal/tar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/internal/tar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,wCAAkC;AAClC,gDAAiC;AACjC,2BAA4C;AAC5C,2CAA4B;AAC5B,oDAAqC;
|
|
1
|
+
{"version":3,"file":"tar.js","sourceRoot":"","sources":["../../src/internal/tar.ts"],"names":[],"mappings":"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"}
|