mirror of
https://code.forgejo.org/actions/download-artifact.git
synced 2024-12-23 12:36:01 +01:00
Fix for all downloads
This commit is contained in:
parent
54ed8ca4ec
commit
ac384941b4
2 changed files with 10 additions and 4 deletions
6
dist/index.js
vendored
6
dist/index.js
vendored
|
@ -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) {
|
||||
|
|
|
@ -30,6 +30,7 @@ async function run(): Promise<void> {
|
|||
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<void> {
|
|||
)
|
||||
}
|
||||
|
||||
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<void> {
|
|||
|
||||
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<void> {
|
|||
|
||||
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)
|
||||
})
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue