All Versions
Bamboo 5.13Bamboo 5.7.x
Bamboo 5.6.x
More...
The instructions on this page describe how to configure artifact sharing between Jobs in a Plan. Artifact sharing allows you to pass an artifact from one Job to a Job in a subsequent Stage. That is, the artifact is copied to the subsequent Job's agent. Note, you cannot pass artifacts between Jobs in the same stage.
For example, you may want to run acceptance tests on a build, share the WAR from one Job to another without rebuilding it each time.
The instructions on this page also describe how to configure artifact sharing when you are using a Maven builder. In this case, the artifact is deployed to and resolved from a Maven repository by Jobs, rather than being copied from agent to agent.
On this page:
You can share artifacts between Jobs in different Stages via artifact dependencies. Each time the artifact is shared with a subsequent Job, it is copied to the Job's agent.
To share an artifact between two Jobs in different Stages:
Screenshot above: Creating an Artifact Dependency
Before you begin:
Maven artifact sharing works by producing new remote repositories when you run a Plan. These are temporary equivalents of the deployment repositories configured within the project's pom.xml files. For example, if the project deploys its repository to the 'mycorp-private' repository at http://repository.example.com/ then Bamboo will create a 'mycorp-private' repository for each Plan result hosted on the Bamboo server.
When a Job produces a Maven artifact, it is deployed to this repository. A subsequent Job that consumes an artifact created by this process will resolve it from the repository within Bamboo. This process of deploying and resolving artifacts can then be repeated, as necessary across subsequent Jobs in later Stages. Once a build has completed, the temporary repositories are removed to conserve disk space, unless specified otherwise (see configuration instructions below).
The diagram below shows an example of how artifact sharing works. Two Jobs, Job A and Job B, share an artifact in Plan, MyPlan. Job A builds the artifact then deploys it to the temporary remote Maven repository. Job A triggers Job B. Job B resolves the artifact, builds, then deploys the artifact back to the repository.
Diagram above: Maven artifact sharing example
Artifact sharing is configured differently when using Maven 2 or 3 as a builder for your Jobs. Artifacts are deployed to and resolved from a Maven repository, rather than copied from agent to agent. You will need to change your pom.xml file, as well as configure the relevant Jobs to set up artifact sharing.
Before you begin:
To share an artifact between two Maven Jobs in different Stages:
pom.xml file and add the following plugin definition:
<build> <plugins> <plugin> <groupId>com.atlassian.bamboo.maven.sharing</groupId> <artifactId>bamboo-artifact-sharing-maven-plugin</artifactId> <version>3.0-i5</version> <executions> <execution> <id>sharing</id> <goals> <goal>share</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
<version>) must match the version of Bamboo you are using. This version number number will be compatible across minor releases of Bamboo, unless specified otherwise in the relevant upgrade.
Screenshot above: Enabling Maven artifact sharing for a Plan
Screenshot above: Viewing the build result for a Job with Maven artifact sharing
Artifacts are copied to a subdirectory (/JOB_KEY/download-data/) under your 'Build Directory' folder (see Locating Important Directories and Files). Artifacts which you define in the plan are listed in each build result as artifacts (see Viewing a Build's Artifacts in the Bamboo User's Guide).
Viewing a Build's Artifacts
Configuring a Job's Build Artifacts