1
0
Fork 0
mirror of https://code.forgejo.org/actions/download-artifact.git synced 2024-12-23 12:36:01 +01:00

Merge pull request #243 from actions/robherley/v4-beta-updates

Consume latest @actions/toolkit
This commit is contained in:
Jonathan Tamsut 2023-12-07 11:52:45 -08:00 committed by GitHub
commit 5be1d38671
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 112 additions and 138 deletions

242
dist/index.js vendored
View file

@ -5840,16 +5840,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.create = void 0;
const client_1 = __nccwpck_require__(23955); const client_1 = __nccwpck_require__(23955);
/**
* Exported functionality that we want to expose for any users of @actions/artifact
*/
__exportStar(__nccwpck_require__(2538), exports); __exportStar(__nccwpck_require__(2538), exports);
function create() { __exportStar(__nccwpck_require__(69398), exports);
return client_1.Client.create(); __exportStar(__nccwpck_require__(23955), exports);
} const client = new client_1.DefaultArtifactClient();
exports.create = create; exports["default"] = client;
//# sourceMappingURL=artifact.js.map //# sourceMappingURL=artifact.js.map
/***/ }), /***/ }),
@ -7685,32 +7681,24 @@ var __rest = (this && this.__rest) || function (s, e) {
return t; return t;
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Client = void 0; exports.DefaultArtifactClient = void 0;
const core_1 = __nccwpck_require__(66526); const core_1 = __nccwpck_require__(66526);
const config_1 = __nccwpck_require__(95042); const config_1 = __nccwpck_require__(95042);
const upload_artifact_1 = __nccwpck_require__(86278); const upload_artifact_1 = __nccwpck_require__(86278);
const download_artifact_1 = __nccwpck_require__(17306); const download_artifact_1 = __nccwpck_require__(17306);
const get_artifact_1 = __nccwpck_require__(56218); const get_artifact_1 = __nccwpck_require__(56218);
const list_artifacts_1 = __nccwpck_require__(64033); const list_artifacts_1 = __nccwpck_require__(64033);
class Client { const errors_1 = __nccwpck_require__(69398);
/** /**
* Constructs a Client * The default artifact client that is used by the artifact action(s).
*/ */
static create() { class DefaultArtifactClient {
return new Client();
}
/**
* Upload Artifact
*/
uploadArtifact(name, files, rootDirectory, options) { uploadArtifact(name, files, rootDirectory, options) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
if ((0, config_1.isGhes)()) {
(0, core_1.warning)(`@actions/artifact v2.0.0+ and upload-artifact@v4+ are not currently supported on GHES.`);
return {
success: false
};
}
try { try {
if ((0, config_1.isGhes)()) {
throw new errors_1.GHESNotSupportedError();
}
return (0, upload_artifact_1.uploadArtifact)(name, files, rootDirectory, options); return (0, upload_artifact_1.uploadArtifact)(name, files, rootDirectory, options);
} }
catch (error) { catch (error) {
@ -7719,24 +7707,16 @@ class Client {
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information. Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions is operating normally at [https://githubstatus.com](https://www.githubstatus.com).`); If the error persists, please check whether Actions is operating normally at [https://githubstatus.com](https://www.githubstatus.com).`);
return { throw error;
success: false
};
} }
}); });
} }
/**
* Download Artifact
*/
downloadArtifact(artifactId, options) { downloadArtifact(artifactId, options) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
if ((0, config_1.isGhes)()) {
(0, core_1.warning)(`@actions/artifact v2.0.0+ and download-artifact@v4+ are not currently supported on GHES.`);
return {
success: false
};
}
try { try {
if ((0, config_1.isGhes)()) {
throw new errors_1.GHESNotSupportedError();
}
if (options === null || options === void 0 ? void 0 : options.findBy) { if (options === null || options === void 0 ? void 0 : options.findBy) {
const { findBy: { repositoryOwner, repositoryName, token } } = options, downloadOptions = __rest(options, ["findBy"]); const { findBy: { repositoryOwner, repositoryName, token } } = options, downloadOptions = __rest(options, ["findBy"]);
return (0, download_artifact_1.downloadArtifactPublic)(artifactId, repositoryOwner, repositoryName, token, downloadOptions); return (0, download_artifact_1.downloadArtifactPublic)(artifactId, repositoryOwner, repositoryName, token, downloadOptions);
@ -7744,29 +7724,21 @@ If the error persists, please check whether Actions is operating normally at [ht
return (0, download_artifact_1.downloadArtifactInternal)(artifactId, options); return (0, download_artifact_1.downloadArtifactInternal)(artifactId, options);
} }
catch (error) { catch (error) {
(0, core_1.warning)(`Artifact download failed with error: ${error}. (0, core_1.warning)(`Download Artifact failed with error: ${error}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information. Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`); If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`);
return { throw error;
success: false
};
} }
}); });
} }
/**
* List Artifacts
*/
listArtifacts(options) { listArtifacts(options) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
if ((0, config_1.isGhes)()) {
(0, core_1.warning)(`@actions/artifact v2.0.0+ and download-artifact@v4+ are not currently supported on GHES.`);
return {
artifacts: []
};
}
try { try {
if ((0, config_1.isGhes)()) {
throw new errors_1.GHESNotSupportedError();
}
if (options === null || options === void 0 ? void 0 : options.findBy) { if (options === null || options === void 0 ? void 0 : options.findBy) {
const { findBy: { workflowRunId, repositoryOwner, repositoryName, token } } = options; const { findBy: { workflowRunId, repositoryOwner, repositoryName, token } } = options;
return (0, list_artifacts_1.listArtifactsPublic)(workflowRunId, repositoryOwner, repositoryName, token, options === null || options === void 0 ? void 0 : options.latest); return (0, list_artifacts_1.listArtifactsPublic)(workflowRunId, repositoryOwner, repositoryName, token, options === null || options === void 0 ? void 0 : options.latest);
@ -7779,24 +7751,16 @@ If the error persists, please check whether Actions and API requests are operati
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information. Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`); If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`);
return { throw error;
artifacts: []
};
} }
}); });
} }
/**
* Get Artifact
*/
getArtifact(artifactName, options) { getArtifact(artifactName, options) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
if ((0, config_1.isGhes)()) {
(0, core_1.warning)(`@actions/artifact v2.0.0+ and download-artifact@v4+ are not currently supported on GHES.`);
return {
success: false
};
}
try { try {
if ((0, config_1.isGhes)()) {
throw new errors_1.GHESNotSupportedError();
}
if (options === null || options === void 0 ? void 0 : options.findBy) { if (options === null || options === void 0 ? void 0 : options.findBy) {
const { findBy: { workflowRunId, repositoryOwner, repositoryName, token } } = options; const { findBy: { workflowRunId, repositoryOwner, repositoryName, token } } = options;
return (0, get_artifact_1.getArtifactPublic)(artifactName, workflowRunId, repositoryOwner, repositoryName, token); return (0, get_artifact_1.getArtifactPublic)(artifactName, workflowRunId, repositoryOwner, repositoryName, token);
@ -7804,19 +7768,17 @@ If the error persists, please check whether Actions and API requests are operati
return (0, get_artifact_1.getArtifactInternal)(artifactName); return (0, get_artifact_1.getArtifactInternal)(artifactName);
} }
catch (error) { catch (error) {
(0, core_1.warning)(`Fetching Artifact failed with error: ${error}. (0, core_1.warning)(`Get Artifact failed with error: ${error}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information. Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`); If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`);
return { throw error;
success: false
};
} }
}); });
} }
} }
exports.Client = Client; exports.DefaultArtifactClient = DefaultArtifactClient;
//# sourceMappingURL=client.js.map //# sourceMappingURL=client.js.map
/***/ }), /***/ }),
@ -7873,6 +7835,7 @@ const config_1 = __nccwpck_require__(95042);
const artifact_twirp_client_1 = __nccwpck_require__(63550); const artifact_twirp_client_1 = __nccwpck_require__(63550);
const generated_1 = __nccwpck_require__(90265); const generated_1 = __nccwpck_require__(90265);
const util_1 = __nccwpck_require__(80565); const util_1 = __nccwpck_require__(80565);
const errors_1 = __nccwpck_require__(69398);
const scrubQueryParameters = (url) => { const scrubQueryParameters = (url) => {
const parsed = new URL(url); const parsed = new URL(url);
parsed.search = ''; parsed.search = '';
@ -7934,7 +7897,7 @@ function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, tok
catch (error) { catch (error) {
throw new Error(`Unable to download and extract artifact: ${error.message}`); throw new Error(`Unable to download and extract artifact: ${error.message}`);
} }
return { success: true, downloadPath }; return { downloadPath };
}); });
} }
exports.downloadArtifactPublic = downloadArtifactPublic; exports.downloadArtifactPublic = downloadArtifactPublic;
@ -7950,8 +7913,7 @@ function downloadArtifactInternal(artifactId, options) {
}; };
const { artifacts } = yield artifactClient.ListArtifacts(listReq); const { artifacts } = yield artifactClient.ListArtifacts(listReq);
if (artifacts.length === 0) { if (artifacts.length === 0) {
core.warning(`No artifacts found for ID: ${artifactId}\nAre you trying to download from a different run? Try specifying a github-token with \`actions:read\` scope.`); throw new errors_1.ArtifactNotFoundError(`No artifacts found for ID: ${artifactId}\nAre you trying to download from a different run? Try specifying a github-token with \`actions:read\` scope.`);
return { success: false };
} }
if (artifacts.length > 1) { if (artifacts.length > 1) {
core.warning('Multiple artifacts found, defaulting to first.'); core.warning('Multiple artifacts found, defaulting to first.');
@ -7971,7 +7933,7 @@ function downloadArtifactInternal(artifactId, options) {
catch (error) { catch (error) {
throw new Error(`Unable to download and extract artifact: ${error.message}`); throw new Error(`Unable to download and extract artifact: ${error.message}`);
} }
return { success: true, downloadPath }; return { downloadPath };
}); });
} }
exports.downloadArtifactInternal = downloadArtifactInternal; exports.downloadArtifactInternal = downloadArtifactInternal;
@ -8040,7 +8002,9 @@ const util_1 = __nccwpck_require__(80565);
const user_agent_1 = __nccwpck_require__(79681); const user_agent_1 = __nccwpck_require__(79681);
const artifact_twirp_client_1 = __nccwpck_require__(63550); const artifact_twirp_client_1 = __nccwpck_require__(63550);
const generated_1 = __nccwpck_require__(90265); const generated_1 = __nccwpck_require__(90265);
const errors_1 = __nccwpck_require__(69398);
function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) { function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, repositoryName, token) {
var _a;
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const [retryOpts, requestOpts] = (0, retry_options_1.getRetryOptions)(utils_1.defaults); const [retryOpts, requestOpts] = (0, retry_options_1.getRetryOptions)(utils_1.defaults);
const opts = { const opts = {
@ -8058,16 +8022,10 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
name: artifactName name: artifactName
}); });
if (getArtifactResp.status !== 200) { if (getArtifactResp.status !== 200) {
core.warning(`non-200 response from GitHub API: ${getArtifactResp.status}`); throw new errors_1.InvalidResponseError(`Invalid response from GitHub API: ${getArtifactResp.status} (${(_a = getArtifactResp === null || getArtifactResp === void 0 ? void 0 : getArtifactResp.headers) === null || _a === void 0 ? void 0 : _a['x-github-request-id']})`);
return {
success: false
};
} }
if (getArtifactResp.data.artifacts.length === 0) { if (getArtifactResp.data.artifacts.length === 0) {
core.warning('no artifacts found'); throw new errors_1.ArtifactNotFoundError(`Artifact not found for name: ${artifactName}`);
return {
success: false
};
} }
let artifact = getArtifactResp.data.artifacts[0]; let artifact = getArtifactResp.data.artifacts[0];
if (getArtifactResp.data.artifacts.length > 1) { if (getArtifactResp.data.artifacts.length > 1) {
@ -8075,7 +8033,6 @@ function getArtifactPublic(artifactName, workflowRunId, repositoryOwner, reposit
core.debug(`More than one artifact found for a single name, returning newest (id: ${artifact.id})`); core.debug(`More than one artifact found for a single name, returning newest (id: ${artifact.id})`);
} }
return { return {
success: true,
artifact: { artifact: {
name: artifact.name, name: artifact.name,
id: artifact.id, id: artifact.id,
@ -8097,18 +8054,14 @@ function getArtifactInternal(artifactName) {
}; };
const res = yield artifactClient.ListArtifacts(req); const res = yield artifactClient.ListArtifacts(req);
if (res.artifacts.length === 0) { if (res.artifacts.length === 0) {
core.warning('no artifacts found'); throw new errors_1.ArtifactNotFoundError(`Artifact not found for name: ${artifactName}`);
return {
success: false
};
} }
let artifact = res.artifacts[0]; let artifact = res.artifacts[0];
if (res.artifacts.length > 1) { if (res.artifacts.length > 1) {
artifact = res.artifacts.sort((a, b) => Number(b.databaseId) - Number(a.databaseId))[0]; artifact = res.artifacts.sort((a, b) => Number(b.databaseId) - Number(a.databaseId))[0];
core.debug(`more than one artifact found for a single name, returning newest (id: ${artifact.databaseId})`); core.debug(`More than one artifact found for a single name, returning newest (id: ${artifact.databaseId})`);
} }
return { return {
success: true,
artifact: { artifact: {
name: artifact.name, name: artifact.name,
id: Number(artifact.databaseId), id: Number(artifact.databaseId),
@ -8380,8 +8333,7 @@ class ArtifactHttpClient {
'Content-Type': contentType 'Content-Type': contentType
}; };
try { try {
const response = yield this.retryableRequest(() => __awaiter(this, void 0, void 0, function* () { return this.httpClient.post(url, JSON.stringify(data), headers); })); const { body } = yield this.retryableRequest(() => __awaiter(this, void 0, void 0, function* () { return this.httpClient.post(url, JSON.stringify(data), headers); }));
const body = yield response.readBody();
return JSON.parse(body); return JSON.parse(body);
} }
catch (error) { catch (error) {
@ -8398,10 +8350,12 @@ class ArtifactHttpClient {
try { try {
const response = yield operation(); const response = yield operation();
const statusCode = response.message.statusCode; const statusCode = response.message.statusCode;
(0, core_1.debug)(`[Response] ${response.message.statusCode}`); const body = yield response.readBody();
(0, core_1.debug)(JSON.stringify(response.message.headers, null, 2)); (0, core_1.debug)(`[Response] - ${response.message.statusCode}`);
(0, core_1.debug)(`Headers: ${JSON.stringify(response.message.headers, null, 2)}`);
(0, core_1.debug)(`Body: ${body}`);
if (this.isSuccessStatusCode(statusCode)) { if (this.isSuccessStatusCode(statusCode)) {
return response; return { response, body };
} }
isRetryable = this.isRetryableHttpStatusCode(statusCode); isRetryable = this.isRetryableHttpStatusCode(statusCode);
errorMessage = `Failed request: (${statusCode}) ${response.message.statusMessage}`; errorMessage = `Failed request: (${statusCode}) ${response.message.statusMessage}`;
@ -8531,6 +8485,50 @@ exports.getConcurrency = getConcurrency;
/***/ }), /***/ }),
/***/ 69398:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.GHESNotSupportedError = exports.ArtifactNotFoundError = exports.InvalidResponseError = exports.FilesNotFoundError = void 0;
class FilesNotFoundError extends Error {
constructor(files = []) {
let message = 'No files were found to upload';
if (files.length > 0) {
message += `: ${files.join(', ')}`;
}
super(message);
this.files = files;
this.name = 'FilesNotFoundError';
}
}
exports.FilesNotFoundError = FilesNotFoundError;
class InvalidResponseError extends Error {
constructor(message) {
super(message);
this.name = 'InvalidResponseError';
}
}
exports.InvalidResponseError = InvalidResponseError;
class ArtifactNotFoundError extends Error {
constructor(message = 'Artifact not found') {
super(message);
this.name = 'ArtifactNotFoundError';
}
}
exports.ArtifactNotFoundError = ArtifactNotFoundError;
class GHESNotSupportedError extends Error {
constructor(message = '@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.') {
super(message);
this.name = 'GHESNotSupportedError';
}
}
exports.GHESNotSupportedError = GHESNotSupportedError;
//# sourceMappingURL=errors.js.map
/***/ }),
/***/ 2538: /***/ 2538:
/***/ ((__unused_webpack_module, exports) => { /***/ ((__unused_webpack_module, exports) => {
@ -8714,28 +8712,16 @@ function uploadZipToBlobStorage(authenticatedUploadURL, zipUploadStream) {
const hashStream = crypto.createHash('sha256'); const hashStream = crypto.createHash('sha256');
zipUploadStream.pipe(uploadStream); // This stream is used for the upload zipUploadStream.pipe(uploadStream); // This stream is used for the upload
zipUploadStream.pipe(hashStream).setEncoding('hex'); // This stream is used to compute a hash of the zip content that gets used. Integrity check zipUploadStream.pipe(hashStream).setEncoding('hex'); // This stream is used to compute a hash of the zip content that gets used. Integrity check
try { core.info('Beginning upload of artifact content to blob storage');
core.info('Beginning upload of artifact content to blob storage'); yield blockBlobClient.uploadStream(uploadStream, bufferSize, maxConcurrency, options);
yield blockBlobClient.uploadStream(uploadStream, bufferSize, maxConcurrency, options); core.info('Finished uploading artifact content to blob storage!');
core.info('Finished uploading artifact content to blob storage!'); hashStream.end();
hashStream.end(); sha256Hash = hashStream.read();
sha256Hash = hashStream.read(); core.info(`SHA256 hash of uploaded artifact zip is ${sha256Hash}`);
core.info(`SHA256 hash of uploaded artifact zip is ${sha256Hash}`);
}
catch (error) {
core.warning(`Failed to upload artifact zip to blob storage, error: ${error}`);
return {
isSuccess: false
};
}
if (uploadByteCount === 0) { if (uploadByteCount === 0) {
core.warning(`No data was uploaded to blob storage. Reported upload byte count is 0`); core.warning(`No data was uploaded to blob storage. Reported upload byte count is 0.`);
return {
isSuccess: false
};
} }
return { return {
isSuccess: true,
uploadSize: uploadByteCount, uploadSize: uploadByteCount,
sha256Hash sha256Hash
}; };
@ -8929,18 +8915,15 @@ const util_1 = __nccwpck_require__(80565);
const blob_upload_1 = __nccwpck_require__(63311); const blob_upload_1 = __nccwpck_require__(63311);
const zip_1 = __nccwpck_require__(6180); const zip_1 = __nccwpck_require__(6180);
const generated_1 = __nccwpck_require__(90265); const generated_1 = __nccwpck_require__(90265);
const errors_1 = __nccwpck_require__(69398);
function uploadArtifact(name, files, rootDirectory, options) { function uploadArtifact(name, files, rootDirectory, options) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
(0, path_and_artifact_name_validation_1.validateArtifactName)(name); (0, path_and_artifact_name_validation_1.validateArtifactName)(name);
(0, upload_zip_specification_1.validateRootDirectory)(rootDirectory); (0, upload_zip_specification_1.validateRootDirectory)(rootDirectory);
const zipSpecification = (0, upload_zip_specification_1.getUploadZipSpecification)(files, rootDirectory); const zipSpecification = (0, upload_zip_specification_1.getUploadZipSpecification)(files, rootDirectory);
if (zipSpecification.length === 0) { if (zipSpecification.length === 0) {
core.warning(`No files were found to upload`); throw new errors_1.FilesNotFoundError(zipSpecification.flatMap(s => (s.sourcePath ? [s.sourcePath] : [])));
return {
success: false
};
} }
const zipUploadStream = yield (0, zip_1.createZipUploadStream)(zipSpecification, options === null || options === void 0 ? void 0 : options.compressionLevel);
// get the IDs needed for the artifact creation // get the IDs needed for the artifact creation
const backendIds = (0, util_1.getBackendIdsFromToken)(); const backendIds = (0, util_1.getBackendIdsFromToken)();
// create the artifact client // create the artifact client
@ -8959,18 +8942,11 @@ function uploadArtifact(name, files, rootDirectory, options) {
} }
const createArtifactResp = yield artifactClient.CreateArtifact(createArtifactReq); const createArtifactResp = yield artifactClient.CreateArtifact(createArtifactReq);
if (!createArtifactResp.ok) { if (!createArtifactResp.ok) {
core.warning(`Failed to create artifact`); throw new errors_1.InvalidResponseError('CreateArtifact: response from backend was not ok');
return {
success: false
};
} }
const zipUploadStream = yield (0, zip_1.createZipUploadStream)(zipSpecification, options === null || options === void 0 ? void 0 : options.compressionLevel);
// Upload zip to blob storage // Upload zip to blob storage
const uploadResult = yield (0, blob_upload_1.uploadZipToBlobStorage)(createArtifactResp.signedUploadUrl, zipUploadStream); const uploadResult = yield (0, blob_upload_1.uploadZipToBlobStorage)(createArtifactResp.signedUploadUrl, zipUploadStream);
if (uploadResult.isSuccess === false) {
return {
success: false
};
}
// finalize the artifact // finalize the artifact
const finalizeArtifactReq = { const finalizeArtifactReq = {
workflowRunBackendId: backendIds.workflowRunBackendId, workflowRunBackendId: backendIds.workflowRunBackendId,
@ -8986,15 +8962,11 @@ function uploadArtifact(name, files, rootDirectory, options) {
core.info(`Finalizing artifact upload`); core.info(`Finalizing artifact upload`);
const finalizeArtifactResp = yield artifactClient.FinalizeArtifact(finalizeArtifactReq); const finalizeArtifactResp = yield artifactClient.FinalizeArtifact(finalizeArtifactReq);
if (!finalizeArtifactResp.ok) { if (!finalizeArtifactResp.ok) {
core.warning(`Failed to finalize artifact`); throw new errors_1.InvalidResponseError('FinalizeArtifact: response from backend was not ok');
return {
success: false
};
} }
const artifactId = BigInt(finalizeArtifactResp.artifactId); const artifactId = BigInt(finalizeArtifactResp.artifactId);
core.info(`Artifact ${name}.zip successfully finalized. Artifact ID ${artifactId}`); core.info(`Artifact ${name}.zip successfully finalized. Artifact ID ${artifactId}`);
return { return {
success: true,
size: uploadResult.uploadSize, size: uploadResult.uploadSize,
id: Number(artifactId) id: Number(artifactId)
}; };
@ -119370,11 +119342,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
result["default"] = mod; result["default"] = mod;
return result; return result;
}; };
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
const os = __importStar(__nccwpck_require__(22037)); const os = __importStar(__nccwpck_require__(22037));
const path = __importStar(__nccwpck_require__(71017)); const path = __importStar(__nccwpck_require__(71017));
const core = __importStar(__nccwpck_require__(42186)); const core = __importStar(__nccwpck_require__(42186));
const artifact = __importStar(__nccwpck_require__(99860)); const artifact_1 = __importDefault(__nccwpck_require__(99860));
const constants_1 = __nccwpck_require__(69042); const constants_1 = __nccwpck_require__(69042);
const PARALLEL_DOWNLOADS = 5; const PARALLEL_DOWNLOADS = 5;
exports.chunk = (arr, n) => arr.reduce((acc, cur, i) => { exports.chunk = (arr, n) => arr.reduce((acc, cur, i) => {
@ -119413,11 +119388,10 @@ function run() {
repositoryOwner repositoryOwner
}; };
} }
const artifactClient = artifact.create();
let artifacts = []; let artifacts = [];
if (isSingleArtifactDownload) { if (isSingleArtifactDownload) {
core.info(`Downloading single artifact`); core.info(`Downloading single artifact`);
const { artifact: targetArtifact } = yield artifactClient.getArtifact(inputs.name, options); const { artifact: targetArtifact } = yield artifact_1.default.getArtifact(inputs.name, options);
if (!targetArtifact) { if (!targetArtifact) {
throw new Error(`Artifact '${inputs.name}' not found`); throw new Error(`Artifact '${inputs.name}' not found`);
} }
@ -119426,14 +119400,14 @@ function run() {
} }
else { else {
core.info(`No input name specified, downloading all artifacts. Extra directory with the artifact name will be created for each download`); core.info(`No input name specified, downloading all artifacts. Extra directory with the artifact name will be created for each download`);
const listArtifactResponse = yield artifactClient.listArtifacts(Object.assign({ latest: true }, options)); const listArtifactResponse = yield artifact_1.default.listArtifacts(Object.assign({ latest: true }, options));
if (listArtifactResponse.artifacts.length === 0) { if (listArtifactResponse.artifacts.length === 0) {
throw new Error(`No artifacts found for run '${inputs.runID}' in '${inputs.repository}'`); throw new Error(`No artifacts found for run '${inputs.runID}' in '${inputs.repository}'`);
} }
core.debug(`Found ${listArtifactResponse.artifacts.length} artifacts`); core.debug(`Found ${listArtifactResponse.artifacts.length} artifacts`);
artifacts = listArtifactResponse.artifacts; artifacts = listArtifactResponse.artifacts;
} }
const downloadPromises = artifacts.map(artifact => artifactClient.downloadArtifact(artifact.id, Object.assign(Object.assign({}, options), { path: isSingleArtifactDownload const downloadPromises = artifacts.map(artifact => artifact_1.default.downloadArtifact(artifact.id, Object.assign(Object.assign({}, options), { path: isSingleArtifactDownload
? resolvedPath ? resolvedPath
: path.join(resolvedPath, artifact.name) }))); : path.join(resolvedPath, artifact.name) })));
const chunkedPromises = exports.chunk(downloadPromises, PARALLEL_DOWNLOADS); const chunkedPromises = exports.chunk(downloadPromises, PARALLEL_DOWNLOADS);

View file

@ -1,7 +1,8 @@
import * as os from 'os' import * as os from 'os'
import * as path from 'path' import * as path from 'path'
import * as core from '@actions/core' import * as core from '@actions/core'
import * as artifact from '@actions/artifact' import artifactClient from '@actions/artifact'
import type {Artifact, FindOptions} from '@actions/artifact'
import {Inputs, Outputs} from './constants' import {Inputs, Outputs} from './constants'
const PARALLEL_DOWNLOADS = 5 const PARALLEL_DOWNLOADS = 5
@ -34,7 +35,7 @@ async function run(): Promise<void> {
const resolvedPath = path.resolve(inputs.path) const resolvedPath = path.resolve(inputs.path)
core.debug(`Resolved path is ${resolvedPath}`) core.debug(`Resolved path is ${resolvedPath}`)
const options: artifact.FindOptions = {} const options: FindOptions = {}
if (inputs.token) { if (inputs.token) {
const [repositoryOwner, repositoryName] = inputs.repository.split('/') const [repositoryOwner, repositoryName] = inputs.repository.split('/')
if (!repositoryOwner || !repositoryName) { if (!repositoryOwner || !repositoryName) {
@ -51,8 +52,7 @@ async function run(): Promise<void> {
} }
} }
const artifactClient = artifact.create() let artifacts: Artifact[] = []
let artifacts: artifact.Artifact[] = []
if (isSingleArtifactDownload) { if (isSingleArtifactDownload) {
core.info(`Downloading single artifact`) core.info(`Downloading single artifact`)