diff --git a/src/constants.ts b/src/constants.ts index 440d1dc..1d8dc5a 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -3,7 +3,8 @@ export enum Inputs { Path = 'path', GitHubToken = 'github-token', Repository = 'repository', - RunID = 'run-id' + RunID = 'run-id', + NoSeparateDirectory = 'no-separate-directory' } export enum Outputs { diff --git a/src/download-artifact.ts b/src/download-artifact.ts index 4055762..fbfcbac 100644 --- a/src/download-artifact.ts +++ b/src/download-artifact.ts @@ -20,7 +20,8 @@ async function run(): Promise { path: core.getInput(Inputs.Path, {required: false}), token: core.getInput(Inputs.GitHubToken, {required: false}), repository: core.getInput(Inputs.Repository, {required: false}), - runID: parseInt(core.getInput(Inputs.RunID, {required: false})) + runID: parseInt(core.getInput(Inputs.RunID, {required: false})), + noSeparateDirectories: core.getInput(Inputs.NoSeparateDirectory, {required: false}) } if (!inputs.path) { @@ -31,6 +32,7 @@ async function run(): Promise { inputs.path = inputs.path.replace('~', os.homedir()) } + const noSeparateDirectories = inputs.noSeparateDirectories === "true"; const isSingleArtifactDownload = !!inputs.name const resolvedPath = path.resolve(inputs.path) core.debug(`Resolved path is ${resolvedPath}`) @@ -72,9 +74,15 @@ 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` - ) + if (noSeparateDirectories) { + core.info( + `No input name specified, downloading all artifacts. All downloads will be saved to the same directory` + ) + } 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({ latest: true, @@ -94,7 +102,7 @@ async function run(): Promise { const downloadPromises = artifacts.map(artifact => artifactClient.downloadArtifact(artifact.id, { ...options, - path: isSingleArtifactDownload + path: isSingleArtifactDownload || noSeparateDirectories ? resolvedPath : path.join(resolvedPath, artifact.name) })