Artifactory provides tight integration with Bamboo through the Bamboo Artifactory Plug-in. Beyond managing efficient deployment of your artifacts to Artifactory, the plug-in lets you capture information about artifacts deployed, dependencies resolved, environment data associated with the Bamboo build runs and more, that effectively facilitates fully traceable builds.
Build Runner Support
The Bamboo Artifactory Plug-in currently provides full support for Maven 3, Gradle and Ivy builds. Generic Deployment Tasks are available for all builder types.
Before you begin
Please refer to the general information about Artifactory's Build Integration before using the Bamboo Artifactory Plug-in.
Source Code Available!
The Bamboo Artifactory Plugin is an open-source project on GitHub which you can freely browse and fork.
The Bamboo Artifactory Plugin is fully tested for compatibility with the version of Bamboo that is current when the plugin is released. When a new version of Bamboo is released, the Marketplace lists the Bamboo Artifactory Plugin as incompatible, however, since we regularly update the plugin it is likely to maintain compatibility with patch or minor version upgrades of Bamboo. We recommend testing new Bamboo and plugins releases on a staging environment before upgrading the production environment.
Download version 2.5.1 which is compatible with Bamboo 6.4.1 and above.
Upgrading to version 2.x from version 1.x of the plugin requires new installation steps. Please refer to Installing the Plugin for more details.
Installing the Plugin
- Artifactory 2.2.5 or later. For best results and optimized communication, we recommend using the latest version of Artifactory.
- Artifactory Pro is required for advanced features, such as License Control and enhanced Build Integration.
- Maven 3.
- Gradle 0.9 or later.
- Ant and Ivy 2.1.0 or later.
Upgrading to Versions 2.x from Versions 1.x
If you are currently using a version of the plugin below 2.0.0 and would like to upgrade to version 2.0.0 or above, you need to migrate your Artifactory configuration data to the format expected by the type 2 plugin as described in the following steps:
1. If you are not already on version 1.13.0 of the plugin, upgrade to that version first.
2. From Bamboo Administration | Artifactory Plugin, click on the "Migrate data to v2" button.
3. Remove plugin version 1.13.0 and restart Bamboo.
4. You're now ready to install version 2.x according to the below instructions.
Installing Versions 2.x
From version 2.0.0, the Bamboo Artifactory Plugin is released as a type 2 plugin. You can read about installing type 2 plugins in the Bamboo documentation for Installing add-ons.
Installing Versions 1.x
Remove older versions
If you have an older version of the plug-in, be sure to remove it before upgrading to a newer one
$BAMBOO_INSTALLATION_HOME/atlassian-bamboo/WEB-INF/libfolder and restarting Bamboo.
For more details please refer to the Bamboo documentation for Installing Plugins type 1 add-ons.
To use the Bamboo Artifactory plug-in you need to set up your Artifactory server(s) in Bamboo's server configuration. You can then set up a project builder to deploy artifacts and build-info to a repository on one of the configured Artifactory servers.
Configuring Maven 3, Gradle and Ivy Builders
Before you begin with any Artifactory-specific setup, ensure that Maven 3, Gradle and/or Ivy builders are available for project configurations.
These builders are defined as Server Capabilities in Bamboo
To define Server Capabilities for builders:
- Under the Administration menu, select Overview to view the Bamboo administration page.
- Then, under Build Resources select Server Capabilities
- Select Executable as the Capability Type
- Select Artifactory Maven 3, Artifactory Gradle or Artifactory Ivy as the type from the Types list.
- Make sure that Path points to an installation directory of the selected builder type.
Configuring System-wide Artifactory Server(s)
To make Artifactory servers available to project configurations, they must be defined under Administration | ADD-ONS | Artifactory Plugin.
Enter the Artifactory server URL in the Add New Server Configuration fields.
Username and Password
Username and password are optional and are only used when querying Artifactory's REST API for a list of configured repositories (credentials are only required if the target instance does not allow anonymous access).
Configuring a Project Builder
To set up a project task to deploy build-info and artifacts to Artifactory:
- Go to the Tasks step of your jobs configuration.
- Select one of the Artifactory tasks.
- The task configuration fields appear and include Artifactory and build-info configuration options.
Selecting Artifactory Servers and Repositories
Select an Artifactory server URL for resolving artifacts and to deploy build artifacts in the corresponding fields.
If you have configured the System Wide Artifactory Servers correctly with the required credentials, then once you select an Artifactory server, the corresponding fields are populated to let you choose a Resolution Repository and Target Repository.
Repository list empty?
If the Resolution Repository or Target Repository fields remain empty, check that you have entered valid credentials when defining the Artifactory servers.
The Target Repository field is populated with a list of available target repositories as returned by the server (queried with the credentials in the server configuration, if provided).
If the repository list remains empty, ensure the specified Artifactory server URL and credentials (if provided) are valid.
Select the target repository you want Bamboo to deploy artifacts and build-info to.
Running Licence Checks
If you have an Artifactory Pro license, you can set the Run License Checks checkbox so that Artifactory will scan all dependencies used by the build to check for any license violations.
This feature offers the following options:
Send License Violation Notifications to
|A list of email addresses of users who should receive license violation notifications.|
Limit Checks to the Following Scopes
|The Maven dependency scopes on which the license check should be run. If left empty, all scopes will be checked.|
Include Published Artifacts
|Indicates that any build artifacts that are dependencies for other build artifacts, should also be scanned for license violations|
Disable Automatic License Discovery
Tells Artifactory not to try and automatically analyze and tag the build's dependencies with license information upon deployment.
he Artifactory Generic Resolve Task
The Generic Resolve task can be used in any job with any combination of tasks.
It lets you specify dependency patterns that should be downloaded from Artifactory through the creation of File Specs. Read more about File Specs here.
Before version 2.2.0, specifying dependency patterns was possible through Legacy Patterns, which became deprecated in version 2.2.0
The Artifactory Generic Deploy Task
The Generic Deploy task can be used in any job with any combination of tasks, and is provided to offer minimal Build Info support for all types.
This task collects all available information regarding the build from Bamboo, and provides a deployment mechanism for the artifacts produced.
Adding the Generic Deploy task automatically deploys Build Info collected from the Published Artifacts declaration in addition to the artifacts themselves. Specifying artifact patterns to be deployed to Artifactory is done through the creation of File Specs. Read more about File Specs here.
Before version 2.2.0, specifying artifact patterns was possible through Legacy Patterns, which became deprecated in version 2.2.0
The Artifactory Xray Scan Task
The Bamboo Artifactory Plugin is integrated with JFrog Xray through JFrog Artifactory allowing you to have build artifacts scanned for vulnerabilities and other issues. If issues or vulnerabilities are found, you may choose to fail a build job. This integration requires JFrog Artifactory v4.16 and above and JFrog Xray v1.6 and above.
For Xray to scan builds, you need to configure a Watch with the right filters that specify which artifacts and vulnerabilities should trigger an alert, and set a Fail Build Job Action for that Watch. You can read more about CI/CD integration with Xray here.
Next, add the Artifactory Xray Scan task to your plan and configure it.
To scan a build with Xray, the build-info must be already published to Artifactory. You should therefore make sure that one of the previous plan tasks publishes the build-info to Artifactory.
Using File Specs
File Spec are specified in JSON format. They are used in the Generic Resolve and Generic Deploy tasks and in Bamboo Deployment tasks, File Specs are used in the Artifactory Download task, to specify the dependencies to be resolved from Artifactory or artifacts to be deployed to it.
You can use File Specs in one of the following ways:
- Manage them in your SCM, and then during the build, have them pulled to the workspace with the other sources. If you choose this option, you should select the "File" option in the "Upload spec source" or "Download spec source" field and specify the relative path to the File Spec in your workspace.
- Save the File Spec JSON as part of the job configuration. If you choose this option, you should select the "Job configuration" option in the "Upload spec source" or "Download spec source" field and specify the File Spec JSON content in your workspace in the "File path" field.
You can read the File Spec schema here.
The Bamboo Artifactory Plugin also supports Bamboo Deployment projects (read more about Deployment projects here).
- The Artifactory Download task downloads artifacts from Artifactory. The artifacts to be downloaded are defined using File Specs.
- The Artifactory Deployment task collects the build artifacts which are shared by the build plan associated with the deployment task, and uploads them to Artifactory. In addition, artifacts which were downloaded by Artifactory Download task are also available for deployment.
The "Artifacts Download" Task
The Artifacts Download task must be prior to the Artifactory Deployment task in the Deployment job flow.
The Artifacts Directory
We recommend configuring a subdirectory for the Artifacts Download task.
Running a Build
Once you have completed setting up a project builder you can run it. The Artifactory plug-in commences at the end of the build and:
- Deploys all artifacts to the selected target repository in one go (as opposed to the deploy at the end of each module build, used by Maven/Ivy).
- Deploys the Artifactory build-info to the selected server, which provides full traceability of the build in Artifactory, with links back to the build in Bamboo.
You can also link directly to the information in Artifactory from a build run view in Bamboo:
The Bamboo Artifactory plug-in is available under the Apache v2 License.
Attaching Searchable Parameters
You can define parameters that should be attached to build info and artifacts that are deployed by the plugin.
To define a parameter, under Administration go to Build Resources | Global Variables, fill in a Key/Value pair and click Save.
The available parameter types are:
buildInfo.property.*- All properties starting with this prefix will be added to the root properties of the build-info.
artifactory.deploy.*- All properties starting with this prefix will be attached to any produced artifacts that are deployed.
Using a Properties File
Instead of defining properties manually, you can point the plug-in to a properties file.
To do so, define a property named
buildInfoConfig.propertiesFile and set its value to the absolute path of the properties file.
The given path and file should be present on the machine that is running the build agent, not the server.
Overriding Plan values using Bamboo Variables
The Artifactory Plugin supports overriding various in the plan configuration like Deployer credentials, Resolver credentials, repositories etc.
If you wish to override any of the values specified in the table below, you need to configure them as Bamboo variables either through the UI or append then to the REST URL request as a query parameters.
When assigning any value to these Bamboo variables, it will override the job configuration.
In the example above, we use CURL to remotely invoke a Bamboo plan. We set the Deployer username and Deployer password for this specific request.
Note that we add the "bamboo.varaible" prefix to the query parameters.
Note that the sent values will be applied only if the specific task support them. For example: currently Artifactory Gradle tasks do not support Resolver credentials, hence those values will be ignored if sent.
|Parameter name||Description||Supported jobs|
|Deployer username||Maven, Gradle, Ivy, Generic deploy|
|Deployer password||Maven, Gradle, Ivy, Generic deploy|
|Resolver username||Maven, Generic resolve|
|Resolver password||Maven, Generic resolve|
|Resolve repository||Maven, Gradle|
|Deploy repository||Maven, Gradle, Ivy, Generic deploy|
If set to true, check the value of artifactory.task.override.jdk.env.var.
If that variable is populated with an environment variable,
use the value of that environment variable as the Build JDK path.
If artifactory.task.override.jdk.env.var is not defined, use the value of JAVA_HOME for the Build JDK.
|Maven, Gradle, Ivy|
|Stores the name of another environment variable whose value should be used for the build JDK.||Maven, Gradle, Ivy|
The Artifactory Plugin provides a powerful feature for release management and promotion. For details please refer to Bamboo Artifactory Plugin - Release Management.
Push to Bintray (Deprecated)
Bintray users can publish build artifacts to Bintray by using the Artifactory Bintray integration.
This can be done on the Push to Bintray tab of the Bamboo Artifactory Plugin in one of two ways:
- You can configure your Bintray details in a descriptor file which should be added to your list of build artifacts
- You can check the Override descriptor file checkbox and specify the details in the Push to Bintray tab UI.
Using a Descriptor File
1. Create a descriptor file named
Here is an example:
The file's name itself must contain the string
bintray-info (anywhere in the name) and have a
Most of the fields are self-explanatory, however below are descriptions for those fields whose purpose may be less obvious:
|Signifies Artifactory should update an existing repository with the same name with the values in the jsondescriptor (applies only to the 'labels' and 'desc' fields)|
|Can either be your Bintray user nameorthe organization you are pushing to. The credentials that are used in the operation are those you defined in your user profile (or in the default section).|
If you are pushing a complete build, this field should remain empty.
When pushing files, this field should contain a comma-separated list of files (in JSON format) that should be pushed. A file matching any of the file specifications will be pushed (i.e. an "OR" relationship).
You may use wildcards as follows:
Here are some examples of valid search paths:
If you are pushing a complete build, this field should remain empty.
When pushing files, this field should contain a comma-separated list of files(in JSON format) that should be pushed. A file matching any of the file specifications will be pushed (i.e. an "OR" relationship).
This field behaves similarly to applyToFiles, including wildcards as described above, only it refers to relative paths inside the repo that containsthejson descriptor file:
0 or more key:value pairs with which to filter the selected files by properties. The '*' and '?' wildcards are supported in this filter as well.
A file matching all of the property specifications will be pushed (i.e. an "AND relationship)
|If set to true, the version will be automatically published once the push operation is complete.|
If set to true and no passphrase was passed as a parameter to the REST API call, Artifactory will attempt to sign the version without any passphrase.
If you provide the gpgPassphrase parameter in the REST API call, this will cause the call to ignore this flag and the version will be signed with the passphrase that was passed.
2. Commit the descriptor file to your source control along with your project sources.
3. Modify your build script to attach the file to your build artifacts.
Using the "Push to Bintray" Tab UI
1. Check the Override descriptor file checkbox in the Push to Bintray tab.
2. Fill in the fields that are displayed.
Bintray Required Fields
For Bintray OSS users, all fields are mandatory.
For Bintray Pro accounts, the Licenses and VCS URL fields are optional .
Maven Central sync with Bintray
When checking the "Maven Central Sync" checkbox in Push to Bintray configuration page your build will be published to Maven Central after it is pushed to Bintray.
Only packages included to jcenter can be synced with Maven Central automatically.
In order to use Maven Central sync you need to configure your Bintray and Sonatype OSS credentials in Artifactory plugin page like shown in the image below.
"Push to Bintray" works with Bintray credentials configured in Artifactory. You only need to specify Bintray credentials if you are using the Maven Central sync option.
2.5.1 (26 June 2018)
- Gradle skips deployment to Artifactory when "Project uses the Artifactory Gradle Plugin" option is unchecked ( BAP-442 - Getting issue details... STATUS )
2.5.0 (18 June 2018)
- Support for build scan with JFrog Xray ( BAP-426 - Getting issue details... STATUS )
- Files uploaded to Artifactory using Files Specs are now uploaded in parallel using three threads ( BAP-433 - Getting issue details... STATUS )
- Large files downloads from Artifactory are now downloaded concurrently (using range request) ( BAP-427 - Getting issue details... STATUS )
- Bug fixes ( BAP-441 - Getting issue details... STATUS , BAP-432 - Getting issue details... STATUS , BAP-430 - Getting issue details... STATUS , BAP-425 - Getting issue details... STATUS , BAP-423 - Getting issue details... STATUS )
2.4.2 (3 June 2018)
- Compatibility with Bamboo 6.5.x ( BAP-439 - Getting issue details... STATUS )
2.4.1 (21 Jan 2018)
- Bug fix (BAP-422)
2.4.0 (17 Jan 2018)
- Support Download from Artifactory in Deployment Plans (BAP-413)
- Compatibility with Bamboo 6.3.x (BAP-415, BAP-419, BAP-421)
- Bug fixes (BAP-399, BAP-401, BAP-403, BAP-404, BAP-408, BAP-409, BAP-410, BAP-411, BAP-412, BAP-413, BAP-414, BAP-417)
2.3.0 (10 Oct 2017)
- Support pattern exclusion in File Specs (BAP-391)
- File specs AQL optimizations (BAP-395)
- Dependencies repositories have been added to the plugin's maven descriptor (BAP-397)
- Bug fixes (BAP-385, BAP-390, BAP-396)
2.2.0 (6 Aug 2017)
- File Specs support for the Generic Resolve and Generic Deploy Tasks (BAP-377)
- Upgrade JGit (BAP-381)
- Bug fixes (BAP-378, BAP-379, BAP-380, BAP-382, BAP-383, BAP-384, BAP-387)
2.1.1 (22 Jun 2017)
2.1.0 (20 Apr 2017)
- Bug fix (BAP-369)
- Bug fixes (BAP-345)
- Compatibility with Bamboo 5.10.x (BAP-336)
- Coordinate the deployment order of artifacts according to module info in the Gradle task (BAP-294)
- Bug fix (BAP-303)
- Bug fixe (BAP-312)
1.9.0 (26 Nov 2015)
- Support sending parameters when invoking Bamboo Artifactory tasks remotely. (BAP-281, BAP-232)
- New "Push to Maven Central" (BAP-284)
- Bug fixes (BAP-313, BAP-306, BAP-290, BAP-288)
- Bug fix (BAP-282)
- Add push to Bintray support (BAP-257)
- Make Artifactory Upload Task available for Deployment projects (BAP-264)
- Ability not to promote the version on Gradle Release Staging (BAP-258)
- Bug fixes (BAP-270, BAP-269, BAP-267, BAP-266, BAP-261, BAP-260, BAP-254, BAP-246)
- Support for Bamboo 5.8.x (BAP-249)
- Support for Bamboo 5.7.x (BAP-230)
- Compatibility with Maven 3.2.5 (BAP-244)
- Enable overriding the Build JDK value using Bamboo variables (BAP-240)
- Bug fix (BAP-241)
- Support Atlassian Stash source control management (BAP-206)
- Artifactory generic Resolve task (BAP-207)
- Maven 3 tasks - Record Implicit Project Dependencies and Build-Time Dependencies (BAP-225)
1.7.1 (26 MAY 2014)
- A new check box that gives the ability to ignore artifacts that are not deployed according to include/exclude patterns. (BAP-180)
1.7.0 (06 Apr 2014)
- Fix Support for Bamboo 5.4+
- Supporting Git Shared Credentials in Release Management functionality (BAP-189)
- Adding Version Control Url property to the Artifactory Build Info JSON. (BAP-200)
- Bug fixes ( BAP-197)
1.6.2 (24 Nov 2013)
- Fix Support for Bamboo 5.2
- Add Artifactory BlackDuck integration
- Bug fixes (BAP-182 BAP-184 BAP-186 BAP-184)
1.6.1 (03 Oct 2013)
- Support form Bamboo 5.1.1
- Bug fixes 1.6.1
1.6.0 (16 Jul 2013)
- Support form Bamboo 5.0
1.5.6 (03 Sep 2013)
- Support form Bamboo 4.2
1.5.5 (03 Sep 2012)
- Support for include/exclude captured environment variables (BAP-143)
- Bug fixes (MAP-41 MAP-40 GAP-129 BAP-148 IAP-32)
1.5.4 (25 Jun 2012)
- Support Bamboo 4.1.
- Bug fixes. (JIRA)
1.5.3 (02 Apr 2012)
- Support Bamboo 4.0.
1.5.2 (02 Apr 2012)
1.5.1 (05 Jan 2012)
- Compatible release plugin for version 3.4.2. (BAP-116)
- Support for Gradle properties deployment. (BAP-117)
- Unique icon for each Artifactory task type.
- Setting Bamboo job requirements correctly for all builder types. (BAP-125)
1.5.0 (11 Dec 2011)
- Compatible with bamboo version 3.3.x.
- Compatible with Gradle 1.0-milestone-6.
1.4.2 (19 Sep 2011)
- Bug fix (BAP-91)
1.4.1 (01 Aug 2011)
- Support for Bamboo 3.2.x
- Bug fix (BAP-90)
1.4.0 (14 Jul 2011)
- Introducing Release Management capabilities.
- Generic Build Info support for all job types.
- Bug fixes.
1.3.2 (14 Jun 2011)
- Bug fix (BAP-65)
1.3.1 (13 Jun 2011)
- Bug fix (BAP-64)
1.3.0 (30 May 2011)
- Support for Bamboo 3.1.x
1.2.0 (2 Mar 2011)
- Support for Bamboo 3.x
- Gradle Support - Gradle builds are now fully supported with the new Gradle builder
- Ivy builds now support custom Ivy patterns for artifacts and descriptors
- Support for Bamboo 2.7.x
1.0.3 (21 Nov 2010)
- Add Include/exclude pattern for artifacts deployment
- Bug fix (BAP-26)
1.0.2 (7 Nov 2010)
- Control for including published artifacts when running license checks
- Limiting license checks to scopes
- Control for turning off license discovery when running license checks