mirror of
				https://github.com/actions/download-artifact.git
				synced 2025-10-31 17:03:40 +00:00 
			
		
		
		
	Refactor loop, break for testing
This commit is contained in:
		
							parent
							
								
									a8a786b097
								
							
						
					
					
						commit
						503e7a18ae
					
				
							
								
								
									
										26
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -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}`)); | ||||
|  | ||||
| @ -111,8 +111,9 @@ async function run(): Promise<void> { | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   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<void> { | ||||
|           : 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 => | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user