@actions/artifact 2.1.8 → 2.1.10
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/internal/shared/config.d.ts +1 -0
- package/lib/internal/shared/config.js +5 -1
- package/lib/internal/shared/config.js.map +1 -1
- package/lib/internal/upload/blob-upload.js +21 -26
- package/lib/internal/upload/blob-upload.js.map +1 -1
- package/lib/internal/upload/upload-zip-specification.d.ts +7 -0
- package/lib/internal/upload/upload-zip-specification.js +7 -4
- package/lib/internal/upload/upload-zip-specification.js.map +1 -1
- package/lib/internal/upload/zip.js +8 -3
- package/lib/internal/upload/zip.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getConcurrency = exports.getGitHubWorkspaceDir = exports.isGhes = exports.getResultsServiceUrl = exports.getRuntimeToken = exports.getUploadChunkSize = void 0;
|
|
6
|
+
exports.getUploadChunkTimeout = exports.getConcurrency = exports.getGitHubWorkspaceDir = exports.isGhes = exports.getResultsServiceUrl = exports.getRuntimeToken = exports.getUploadChunkSize = void 0;
|
|
7
7
|
const os_1 = __importDefault(require("os"));
|
|
8
8
|
// Used for controlling the highWaterMark value of the zip that is being streamed
|
|
9
9
|
// The same value is used as the chunk size that is use during upload to blob storage
|
|
@@ -56,4 +56,8 @@ function getConcurrency() {
|
|
|
56
56
|
return concurrency > 300 ? 300 : concurrency;
|
|
57
57
|
}
|
|
58
58
|
exports.getConcurrency = getConcurrency;
|
|
59
|
+
function getUploadChunkTimeout() {
|
|
60
|
+
return 300000; // 5 minutes
|
|
61
|
+
}
|
|
62
|
+
exports.getUploadChunkTimeout = getUploadChunkTimeout;
|
|
59
63
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/internal/shared/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,iFAAiF;AACjF,qFAAqF;AACrF,SAAgB,kBAAkB;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,cAAc;AACvC,CAAC;AAFD,gDAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;KACxE;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAND,0CAMC;AAED,SAAgB,oBAAoB;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;KACtE;IAED,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;AACnC,CAAC;AAPD,oDAOC;AAED,SAAgB,MAAM;IACpB,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,oBAAoB,CACzD,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAA;IACvD,MAAM,YAAY,GAAG,QAAQ,KAAK,YAAY,CAAA;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAEnD,OAAO,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,CAAA;AACpD,CAAC;AAXD,wBAWC;AAED,SAAgB,qBAAqB;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IACtD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAND,sDAMC;AAED,gHAAgH;AAChH,uFAAuF;AACvF,2HAA2H;AAC3H,SAAgB,cAAc;IAC5B,MAAM,OAAO,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;IAEhC,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,OAAO,EAAE,CAAA;KACV;IAED,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAA;IAChC,OAAO,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAA;AAC9C,CAAC;AATD,wCASC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/internal/shared/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,iFAAiF;AACjF,qFAAqF;AACrF,SAAgB,kBAAkB;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,cAAc;AACvC,CAAC;AAFD,gDAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;KACxE;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAND,0CAMC;AAED,SAAgB,oBAAoB;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;KACtE;IAED,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;AACnC,CAAC;AAPD,oDAOC;AAED,SAAgB,MAAM;IACpB,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,oBAAoB,CACzD,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAA;IACvD,MAAM,YAAY,GAAG,QAAQ,KAAK,YAAY,CAAA;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAEnD,OAAO,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,CAAA;AACpD,CAAC;AAXD,wBAWC;AAED,SAAgB,qBAAqB;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IACtD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAND,sDAMC;AAED,gHAAgH;AAChH,uFAAuF;AACvF,2HAA2H;AAC3H,SAAgB,cAAc;IAC5B,MAAM,OAAO,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAA;IAEhC,IAAI,OAAO,IAAI,CAAC,EAAE;QAChB,OAAO,EAAE,CAAA;KACV;IAED,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAA;IAChC,OAAO,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAA;AAC9C,CAAC;AATD,wCASC;AAED,SAAgB,qBAAqB;IACnC,OAAO,MAAO,CAAA,CAAC,YAAY;AAC7B,CAAC;AAFD,sDAEC"}
|
|
@@ -43,37 +43,34 @@ function uploadZipToBlobStorage(authenticatedUploadURL, zipUploadStream) {
|
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
let uploadByteCount = 0;
|
|
45
45
|
let lastProgressTime = Date.now();
|
|
46
|
-
|
|
47
|
-
const chunkTimer = (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return timeoutId;
|
|
61
|
-
};
|
|
46
|
+
const abortController = new AbortController();
|
|
47
|
+
const chunkTimer = (interval) => __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const timer = setInterval(() => {
|
|
50
|
+
if (Date.now() - lastProgressTime > interval) {
|
|
51
|
+
reject(new Error('Upload progress stalled.'));
|
|
52
|
+
}
|
|
53
|
+
}, interval);
|
|
54
|
+
abortController.signal.addEventListener('abort', () => {
|
|
55
|
+
clearInterval(timer);
|
|
56
|
+
resolve();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
62
60
|
const maxConcurrency = (0, config_1.getConcurrency)();
|
|
63
61
|
const bufferSize = (0, config_1.getUploadChunkSize)();
|
|
64
62
|
const blobClient = new storage_blob_1.BlobClient(authenticatedUploadURL);
|
|
65
63
|
const blockBlobClient = blobClient.getBlockBlobClient();
|
|
66
|
-
const timeoutDuration = 300000; // 30 seconds
|
|
67
64
|
core.debug(`Uploading artifact zip to blob storage with maxConcurrency: ${maxConcurrency}, bufferSize: ${bufferSize}`);
|
|
68
65
|
const uploadCallback = (progress) => {
|
|
69
66
|
core.info(`Uploaded bytes ${progress.loadedBytes}`);
|
|
70
67
|
uploadByteCount = progress.loadedBytes;
|
|
71
|
-
chunkTimer(timeoutDuration);
|
|
72
68
|
lastProgressTime = Date.now();
|
|
73
69
|
};
|
|
74
70
|
const options = {
|
|
75
71
|
blobHTTPHeaders: { blobContentType: 'zip' },
|
|
76
|
-
onProgress: uploadCallback
|
|
72
|
+
onProgress: uploadCallback,
|
|
73
|
+
abortSignal: abortController.signal
|
|
77
74
|
};
|
|
78
75
|
let sha256Hash = undefined;
|
|
79
76
|
const uploadStream = new stream.PassThrough();
|
|
@@ -82,9 +79,10 @@ function uploadZipToBlobStorage(authenticatedUploadURL, zipUploadStream) {
|
|
|
82
79
|
zipUploadStream.pipe(hashStream).setEncoding('hex'); // This stream is used to compute a hash of the zip content that gets used. Integrity check
|
|
83
80
|
core.info('Beginning upload of artifact content to blob storage');
|
|
84
81
|
try {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
yield Promise.race([
|
|
83
|
+
blockBlobClient.uploadStream(uploadStream, bufferSize, maxConcurrency, options),
|
|
84
|
+
chunkTimer((0, config_1.getUploadChunkTimeout)())
|
|
85
|
+
]);
|
|
88
86
|
}
|
|
89
87
|
catch (error) {
|
|
90
88
|
if (errors_1.NetworkError.isNetworkErrorCode(error === null || error === void 0 ? void 0 : error.code)) {
|
|
@@ -93,10 +91,7 @@ function uploadZipToBlobStorage(authenticatedUploadURL, zipUploadStream) {
|
|
|
93
91
|
throw error;
|
|
94
92
|
}
|
|
95
93
|
finally {
|
|
96
|
-
|
|
97
|
-
if (timeoutId) {
|
|
98
|
-
clearTimeout(timeoutId);
|
|
99
|
-
}
|
|
94
|
+
abortController.abort();
|
|
100
95
|
}
|
|
101
96
|
core.info('Finished uploading artifact content to blob storage!');
|
|
102
97
|
hashStream.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-upload.js","sourceRoot":"","sources":["../../../src/internal/upload/blob-upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA4E;AAG5E,
|
|
1
|
+
{"version":3,"file":"blob-upload.js","sourceRoot":"","sources":["../../../src/internal/upload/blob-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as fs from 'fs';
|
|
1
3
|
export interface UploadZipSpecification {
|
|
2
4
|
/**
|
|
3
5
|
* An absolute source path that points to a file that will be added to a zip. Null if creating a new directory
|
|
@@ -7,6 +9,11 @@ export interface UploadZipSpecification {
|
|
|
7
9
|
* The destination path in a zip for a file
|
|
8
10
|
*/
|
|
9
11
|
destinationPath: string;
|
|
12
|
+
/**
|
|
13
|
+
* Information about the file
|
|
14
|
+
* https://nodejs.org/api/fs.html#class-fsstats
|
|
15
|
+
*/
|
|
16
|
+
stats: fs.Stats;
|
|
10
17
|
}
|
|
11
18
|
/**
|
|
12
19
|
* Checks if a root directory exists and is valid
|
|
@@ -79,10 +79,11 @@ function getUploadZipSpecification(filesToZip, rootDirectory) {
|
|
|
79
79
|
- file3.txt
|
|
80
80
|
*/
|
|
81
81
|
for (let file of filesToZip) {
|
|
82
|
-
|
|
82
|
+
const stats = fs.lstatSync(file, { throwIfNoEntry: false });
|
|
83
|
+
if (!stats) {
|
|
83
84
|
throw new Error(`File ${file} does not exist`);
|
|
84
85
|
}
|
|
85
|
-
if (!
|
|
86
|
+
if (!stats.isDirectory()) {
|
|
86
87
|
// Normalize and resolve, this allows for either absolute or relative paths to be used
|
|
87
88
|
file = (0, path_1.normalize)(file);
|
|
88
89
|
file = (0, path_1.resolve)(file);
|
|
@@ -94,7 +95,8 @@ function getUploadZipSpecification(filesToZip, rootDirectory) {
|
|
|
94
95
|
(0, path_and_artifact_name_validation_1.validateFilePath)(uploadPath);
|
|
95
96
|
specification.push({
|
|
96
97
|
sourcePath: file,
|
|
97
|
-
destinationPath: uploadPath
|
|
98
|
+
destinationPath: uploadPath,
|
|
99
|
+
stats
|
|
98
100
|
});
|
|
99
101
|
}
|
|
100
102
|
else {
|
|
@@ -103,7 +105,8 @@ function getUploadZipSpecification(filesToZip, rootDirectory) {
|
|
|
103
105
|
(0, path_and_artifact_name_validation_1.validateFilePath)(directoryPath);
|
|
104
106
|
specification.push({
|
|
105
107
|
sourcePath: null,
|
|
106
|
-
destinationPath: directoryPath
|
|
108
|
+
destinationPath: directoryPath,
|
|
109
|
+
stats
|
|
107
110
|
});
|
|
108
111
|
}
|
|
109
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-zip-specification.js","sourceRoot":"","sources":["../../../src/internal/upload/upload-zip-specification.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,wCAAkC;AAClC,+BAAuC;AACvC,2FAAoE;
|
|
1
|
+
{"version":3,"file":"upload-zip-specification.js","sourceRoot":"","sources":["../../../src/internal/upload/upload-zip-specification.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,wCAAkC;AAClC,+BAAuC;AACvC,2FAAoE;AAoBpE;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,aAAqB;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,8BAA8B,aAAa,iBAAiB,CAC7D,CAAA;KACF;IACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE;QAC7C,MAAM,IAAI,KAAK,CACb,8BAA8B,aAAa,2BAA2B,CACvE,CAAA;KACF;IACD,IAAA,WAAI,EAAC,gCAAgC,CAAC,CAAA;AACxC,CAAC;AAZD,sDAYC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,UAAoB,EACpB,aAAqB;IAErB,MAAM,aAAa,GAA6B,EAAE,CAAA;IAElD,sFAAsF;IACtF,aAAa,GAAG,IAAA,gBAAS,EAAC,aAAa,CAAC,CAAA;IACxC,aAAa,GAAG,IAAA,cAAO,EAAC,aAAa,CAAC,CAAA;IAEtC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBE;IACF,KAAK,IAAI,IAAI,IAAI,UAAU,EAAE;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAAA;QACzD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAA;SAC/C;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;YACxB,sFAAsF;YACtF,IAAI,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAA;YACtB,IAAI,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBACnC,MAAM,IAAI,KAAK,CACb,sBAAsB,aAAa,2CAA2C,IAAI,EAAE,CACrF,CAAA;aACF;YAED,yHAAyH;YACzH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YAClD,IAAA,oDAAgB,EAAC,UAAU,CAAC,CAAA;YAE5B,aAAa,CAAC,IAAI,CAAC;gBACjB,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,UAAU;gBAC3B,KAAK;aACN,CAAC,CAAA;SACH;aAAM;YACL,kBAAkB;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YACrD,IAAA,oDAAgB,EAAC,aAAa,CAAC,CAAA;YAE/B,aAAa,CAAC,IAAI,CAAC;gBACjB,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,aAAa;gBAC9B,KAAK;aACN,CAAC,CAAA;SACH;KACF;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAzED,8DAyEC"}
|
|
@@ -34,9 +34,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.createZipUploadStream = exports.ZipUploadStream = exports.DEFAULT_COMPRESSION_LEVEL = void 0;
|
|
36
36
|
const stream = __importStar(require("stream"));
|
|
37
|
+
const promises_1 = require("fs/promises");
|
|
37
38
|
const archiver = __importStar(require("archiver"));
|
|
38
39
|
const core = __importStar(require("@actions/core"));
|
|
39
|
-
const fs_1 = require("fs");
|
|
40
40
|
const config_1 = require("../shared/config");
|
|
41
41
|
exports.DEFAULT_COMPRESSION_LEVEL = 6;
|
|
42
42
|
// Custom stream transformer so we can set the highWaterMark property
|
|
@@ -67,8 +67,13 @@ function createZipUploadStream(uploadSpecification, compressionLevel = exports.D
|
|
|
67
67
|
zip.on('end', zipEndCallback);
|
|
68
68
|
for (const file of uploadSpecification) {
|
|
69
69
|
if (file.sourcePath !== null) {
|
|
70
|
-
//
|
|
71
|
-
|
|
70
|
+
// Check if symlink and resolve the source path
|
|
71
|
+
let sourcePath = file.sourcePath;
|
|
72
|
+
if (file.stats.isSymbolicLink()) {
|
|
73
|
+
sourcePath = yield (0, promises_1.readlink)(file.sourcePath);
|
|
74
|
+
}
|
|
75
|
+
// Add the file to the zip
|
|
76
|
+
zip.file(sourcePath, {
|
|
72
77
|
name: file.destinationPath
|
|
73
78
|
});
|
|
74
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/internal/upload/zip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,mDAAoC;AACpC,oDAAqC;
|
|
1
|
+
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/internal/upload/zip.ts"],"names":[],"mappings":"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"}
|