Download all artifacts from previous jobs
Asked by Simon Beyer:

Is it possible to download the artifacts created by ALL previously executed jobs without specifying the exact artifact name?

I use spec branches to enable/disable jobs based on the branch type (f.e. release branches need to execute additional builds). At the end of the Pipeline I want to download all artifacts (number of artifacts can be different based on the branch type) and share them as an "all_artifacts" artifact.

I am not able to use the *download all aritfacts*task because this task also demands the "all_artifacts" artifact. Is there any solution for this topic?


Answers:
author: Eduardo Alvarenga
body: Hello [@Simon Beyer](/t5/user/viewprofilepage/user-id/3441668),

Welcome to Atlassian Community!

Your requirement is not possible to be achieved using standard tooling in Bamboo. You can possibly try extending Bamboo and run a series of scripts that will do that artifact parsing and download then.

**For example:**

To get information about a build, you can run a curl:

```
curl -X GET -uuser:pass -H "Accept: application/json" "https://bamboo.mydomain.net/rest/api/latest/result/BAM-SLEEP-34?expand=artifacts"
```

You can then parse the output of it using your favourite script/programing language and figure out what artifacts are carried with that build.

Then download them (*date.txt* is my artifact, for example):

```
curl -X GET -uuser:pass https://bamboo.mydomain.net/browse/BAM-SLEEP-34/artifact/shared/date/date.txt -o date.txt
```

Once you have all the artifacts you need you can then publish them as "*all_artifacts*" (as a folder with multiple files or as a single zip archive, your call)

The values of your *projectKey-buildKey-buildNumber* keys can be expanded in real-time from Bamboo variables:

E.g.

```
https://bamboo.mydomain.net/browse/${bamboo_planKey}-${bamboo_buildNumber}/artifact/shared/date/date.txt
```

* [Bamboo variables](https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html)

It is also recommended that you store the values of your username and password or the PAT (personal access token) as encrypted strings in Bamboo.

* [System-wide encryption](https://confluence.atlassian.com/bamboo/system-wide-encryption-873930114.html)
* [Bamboo Specs encryption](https://confluence.atlassian.com/bamboo/bamboo-specs-encryption-970268127.html)
* [Personal access token](https://confluence.atlassian.com/bamboo/personal-access-tokens-976779873.html)

Regards,

Eduardo Alvarenga  
Atlassian Support APAC

comments: author: Simon Beyer
body: EDIT: sorry I posted this as answer.  

Thank you. This looks promising. But I trouble with downloading the artifact. My artifacts contain multiple files and not just one like in your example.


author: Eduardo Alvarenga
body: Once you query the artifacts, you will get a json output that can be parsed to get the name of all the artifacts of that build.

Then you can create another call in a loop to download each of them to your desired location.

Regards,

Eduardo Alvarenga  
Atlassian Support APAC


author: Simon Beyer
body: Thanks. But is there an easier way to get a list of all files which are included in on artifact? I am only able to receive the overview html page


author: Eduardo Alvarenga
body: If you want to have a list of files to be downloaded, you will need to parse that overview page.

You can alternatively use a script task to create a single zip file out of your all_artifacts folder, then you can focus on downloading a single zip file and unzipping it at the destination.