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?
Hello @Simon Beyer,
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
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.
Regards,
Eduardo Alvarenga
Atlassian Support APAC
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.