diff --git a/dist/index.js b/dist/index.js index 2f24cb9..55201cc 100644 --- a/dist/index.js +++ b/dist/index.js @@ -118769,21 +118769,27 @@ function run() { core.info(`- ${artifact.name} (ID: ${artifact.id}, Size: ${artifact.size})`); }); } - const downloadPromises = artifacts.map(artifact => artifact_1.default.downloadArtifact(artifact.id, Object.assign(Object.assign({}, options), { path: isSingleArtifactDownload || inputs.mergeMultiple - ? resolvedPath - : path.join(resolvedPath, artifact.name), expectedHash: artifact.digest }))); + const downloadPromises = artifacts.map(artifact => ({ + name: artifact.name, + promise: artifact_1.default.downloadArtifact(artifact.id, Object.assign(Object.assign({}, options), { path: isSingleArtifactDownload || inputs.mergeMultiple + ? resolvedPath + : path.join(resolvedPath, artifact.name), expectedHash: artifact.digest })) + })); const chunkedPromises = (0, exports.chunk)(downloadPromises, PARALLEL_DOWNLOADS); for (const chunk of chunkedPromises) { - const result = yield Promise.all(chunk); - for (const outcome of result) { - if (outcome.digestMismatch) { - core.warning(`Artifact digest validation failed. Please verify the integrity of the artifact.`); + const chunkPromises = chunk.map(item => item.promise); + const results = yield Promise.all(chunkPromises); + for (let i = 0; i < results.length; i++) { + const outcome = results[i]; + const artifactName = chunk[i].name; + if (!outcome.digestMismatch) { + core.warning(`Artifact '${artifactName}' digest validation failed. Please verify the integrity of the artifact.`); } } + core.info(`Total of ${artifacts.length} artifact(s) downloaded`); + core.setOutput(constants_1.Outputs.DownloadPath, resolvedPath); + core.info('Download artifact has finished successfully'); } - core.info(`Total of ${artifacts.length} artifact(s) downloaded`); - core.setOutput(constants_1.Outputs.DownloadPath, resolvedPath); - core.info('Download artifact has finished successfully'); }); } run().catch(err => core.setFailed(`Unable to download artifact(s): ${err.message}`)); diff --git a/src/download-artifact.ts b/src/download-artifact.ts index 68471c0..8ca8bb1 100644 --- a/src/download-artifact.ts +++ b/src/download-artifact.ts @@ -111,8 +111,9 @@ async function run(): Promise { }) } - const downloadPromises = artifacts.map(artifact => - artifactClient.downloadArtifact(artifact.id, { + const downloadPromises = artifacts.map(artifact => ({ + name: artifact.name, + promise: artifactClient.downloadArtifact(artifact.id, { ...options, path: isSingleArtifactDownload || inputs.mergeMultiple @@ -120,23 +121,28 @@ async function run(): Promise { : path.join(resolvedPath, artifact.name), expectedHash: artifact.digest }) - ) + })) const chunkedPromises = chunk(downloadPromises, PARALLEL_DOWNLOADS) for (const chunk of chunkedPromises) { - const result = await Promise.all(chunk) - for (const outcome of result) { - if (outcome.digestMismatch) { + const chunkPromises = chunk.map(item => item.promise) + const results = await Promise.all(chunkPromises) + + for (let i = 0; i < results.length; i++) { + const outcome = results[i] + const artifactName = chunk[i].name + + if (!outcome.digestMismatch) { core.warning( - `Artifact digest validation failed. Please verify the integrity of the artifact.` + `Artifact '${artifactName}' digest validation failed. Please verify the integrity of the artifact.` ) } } - } - core.info(`Total of ${artifacts.length} artifact(s) downloaded`) - core.setOutput(Outputs.DownloadPath, resolvedPath) - core.info('Download artifact has finished successfully') + core.info(`Total of ${artifacts.length} artifact(s) downloaded`) + core.setOutput(Outputs.DownloadPath, resolvedPath) + core.info('Download artifact has finished successfully') + } } run().catch(err =>