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:
commit
5be1d38671
2 changed files with 112 additions and 138 deletions
242
dist/index.js
vendored
242
dist/index.js
vendored
|
@ -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);
|
||||||
|
|
|
@ -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`)
|
||||||
|
|
Loading…
Reference in a new issue