From ac384941b4e5d1010c848c60f414d11c0a1f5e05 Mon Sep 17 00:00:00 2001 From: Konrad Pabjan Date: Thu, 26 Oct 2023 22:29:16 -0400 Subject: [PATCH] Fix for all downloads --- dist/index.js | 6 ++++-- src/download-artifact.ts | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dist/index.js b/dist/index.js index 9cf67f9..d304ce9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -118706,16 +118706,17 @@ function run() { if (inputs.path.startsWith(`~`)) { inputs.path = inputs.path.replace('~', os.homedir()); } + const isSingleArtifactDownload = !!inputs.name; const resolvedPath = path.resolve(inputs.path); core.debug(`Resolved path is ${resolvedPath}`); const [owner, repo] = inputs.repository.split('/'); if (!owner || !repo) { throw new Error(`Invalid repository: '${inputs.repository}'. Must be in format owner/repo`); } - const isSingleArtifactDownload = !!inputs.name; const artifactClient = artifact.create(); let artifacts = []; if (isSingleArtifactDownload) { + core.info(`Downloading single artifact`); const { artifact: targetArtifact } = yield artifactClient.getArtifact(inputs.name, inputs.runID, owner, repo, inputs.token); if (!targetArtifact) { throw new Error(`Artifact '${inputs.name}' not found`); @@ -118724,6 +118725,7 @@ function run() { artifacts = [targetArtifact]; } else { + 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(inputs.runID, owner, repo, inputs.token); if (listArtifactResponse.artifacts.length === 0) { throw new Error(`No artifacts found for run '${inputs.runID}' in '${inputs.repository}'`); @@ -118732,7 +118734,7 @@ function run() { artifacts = listArtifactResponse.artifacts; } const downloadPromises = artifacts.map(artifact => artifactClient.downloadArtifact(artifact.id, owner, repo, inputs.token, { - path: isSingleArtifactDownload ? resolvedPath : path.join(resolvedPath, inputs.name) + path: isSingleArtifactDownload ? resolvedPath : path.join(resolvedPath, artifact.name) })); const chunkedPromises = exports.chunk(downloadPromises, PARALLEL_DOWNLOADS); for (const chunk of chunkedPromises) { diff --git a/src/download-artifact.ts b/src/download-artifact.ts index 6b7db5c..778f899 100644 --- a/src/download-artifact.ts +++ b/src/download-artifact.ts @@ -30,6 +30,7 @@ async function run(): Promise { inputs.path = inputs.path.replace('~', os.homedir()) } + const isSingleArtifactDownload: boolean = !!inputs.name const resolvedPath = path.resolve(inputs.path) core.debug(`Resolved path is ${resolvedPath}`) @@ -40,11 +41,12 @@ async function run(): Promise { ) } - const isSingleArtifactDownload = !!inputs.name const artifactClient = artifact.create() let artifacts: artifact.Artifact[] = [] if (isSingleArtifactDownload) { + core.info(`Downloading single artifact`) + const {artifact: targetArtifact} = await artifactClient.getArtifact( inputs.name, inputs.runID, @@ -63,6 +65,8 @@ async function run(): Promise { artifacts = [targetArtifact] } else { + core.info(`No input name specified, downloading all artifacts. Extra directory with the artifact name will be created for each download`) + const listArtifactResponse = await artifactClient.listArtifacts( inputs.runID, owner, @@ -82,7 +86,7 @@ async function run(): Promise { const downloadPromises = artifacts.map(artifact => artifactClient.downloadArtifact(artifact.id, owner, repo, inputs.token, { - path: isSingleArtifactDownload? resolvedPath : path.join(resolvedPath, inputs.name) + path: isSingleArtifactDownload ? resolvedPath : path.join(resolvedPath, artifact.name) }) )