I’m trying to figure how to use Artifactory in a rather complicated build setup. We have several build machines doing multi hour builds of several components from the same code base.
I want Artifactory to consider all the artifacts resulting from one git hash to be one build, even if these were produced by several build machines. I also want to run tests on the build later and append test results to this build. And in the end, promote builds and download their artifacts.
My question is, how can this be achieved using the build integration feature in Artifactory?
I have tried the recent build append feature, which sounds perfect from the little documentation available. It can create a new aggregated build, consisting of several existing published builds. However, I can’t figure out how to use the aggregated build to anything useful (like downloading the aggregated artifacts), or am I missing something?
What is the intended purpose of the build append feature, if not what I’m after?
The downloading from appended build feature is available since JFrog CLI 1.45.0.
All new functionality is transparent to the user. To download the build artifacts, run jfrog rt dl --build=<buildName>/<buildNumber>
. If the build has an aggregated build, the aggregated build's artifacts will be downloaded too.
This is available for all JFrog CLI remote artifacts commands: Search, Download, Delete, Move, Copy, etc.
Usage example:
# Create and publish build a/1
jfrog rt upload foo.zip generic-local --build-name a --build-number 1
jfrog rt build-publish a 1
# Create build b/1
jfrog rt upload bar.zip generic-local --build-name b --build-number 1
# Append published build a/1 to b/1
jfrog rt build-append b 1 a 1
# Publish b 1
jfrog rt build-publish b 1
# Download foo.zip and bar.zip
jfrog rt download --build=b/1
Read more here.