Skip to end of metadata
Go to start of metadata
Table of Contents

Overview

Artifactory provides tight integration with TeamCity CI Server through the TeamCity 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 TeamCity build runs and more, that effectively provides full traceability for your builds.

From version 2.1.0 the TeamCity Artifactory Plug-in provides powerful features for release management and promotion. For details please refer to TeamCity Artifactory Plugin - Release Management.

 

Before you begin

Please refer to the general information about Artifactory's Build Integration before using the TeamCity Artifactory Plugin.

Source Code Available!

The TeamCity Artifactory Plugin is an open source project on GitHub which you can freely browse and fork.

Build Runner Support

The TeamCity Artifactory plugin supports most build runner types, including: Maven2, Maven 3, Ivy/Ant (with Ivy modules support), Gradle , NAnt, MSBuild, FxCop and Ipr.

 


Installing the Plugin

Some features of the plugin are not supported on older versions of Artifactory and TeamCity.

To make full use of the TeamCity Artifactory plugin, the recommended requirements are:

  • Artifactory 2.2.5 or later.
  • TeamCity 5.1.3 or later.

The compatibility matrix below specifies which version of the TeamCity Artifactory Plug-in you should install based on your versions of TeamCity and Artifactory

Remove older versions

If you have an older version of the plug-in, be sure to remove it before upgrading to a newer one

Artifactory plugin version

TeamCity version

Artifactory version

 

1.0

5.1

2.2.4

 

1.0.1

5.1.1

2.2.5+

 

1.1.1 - 1.1.2

5.1.3

2.3.0+

 

1.1.3

5.1.5

2.3.0+

Download

2.0.1

6.0+

2.3.0+

Download

2.1.0

6.5+

2.3.4+

 

2.1.1

6.5+

2.3.4+

 

2.1.2

6.5.5+

2.3.4+

Download
2.1.36.5.5+2.6.0Download
2.1.47.1+2.6.0+Download
2.1.57.1+2.6.6+Download
2.1.67.1+2.6.6+ 
2.1.77.1+2.6.6+Download
2.1.87.1+2.6.6+Download
2.1.97.1+2.6.6+Download
2.1.107.1+2.6.6+Download
2.1.117.1+2.6.6+Download


Plugins are deployed to TeamCity by placing the packaged plugin into the $TEAMCITY_USER_HOME/plugins folder and restarting TeamCity.


Configuration

To use the TeamCity Artifactory plugin you first need to configure your Artifactory servers in TeamCity's server configuration. You can then set up a project build runner to deploy artifacts and Build Info to a repository on one of the Artifactory servers configured.

Configuring System-wide Artifactory Servers

To make Artifactory servers globally available to project runner configurations, they must be defined in Administration | Integrations | Artifactory.

Select Create new Artifactory server configuration and fill in the URL of the Artifactory server.

Deployer credentials can be set at the global level for all builds, but they can also be overridden and set at a project build level.

Specifying a username and password for the resolver repository is optional. It is only used when querying Artifactory's REST API for a list of configured repositories and then only if the target instance does not allow anonymous access. 

Configuring Artifactory Servers

Configuring Project-specific Runners

Editing Project-specific Configuration

To set up a project runner to deploy build info and artifacts to Artifactory go to Administration | Projects and select the project you want to configure.

Then, under the Build Configurations section, click the Edit link for the build you want to configure.

Under Build Configuration Settings, select the relevant Build Step and click the Edit link for the build step you want to configure.

When you select a value in the Artifactory server URL field, the selected server is queried for a list of configured repositories (using the credentials configured in the corresponding Artifactory Server Configuration). This populates the Target Repository field with a list of repositories to which you can select to deploy.

Configuration errors

If the Target Repository list remains empty, check that the specified Artifactory server URL, credentials and proxy information (if provided) are valid.

Any information about communication errors that might occur can be found in the TeamCity server logs.


Configuring a project to deploy to Artifactory

Running License Checks

If you are using Artifactory Pro, you can benefit from the License Control feature to discover and handle third party dependency licensing issues as part of the build.
If you check the Run License Checks checkbox, Artifactory will scan and check the licenses of all dependencies used by this build. You can also specify a list of recipients who should receive any license violation notifications by email.

Black Duck Code Center Integration

If you are using Artifactory Pro and have an account with  Black Duck Code Center, you can run the build through an automated, non-invasive, open source component approval process, and monitor for security vulnerabilities.

Black Duck Code Center Integration

Advanced Options 

The project-specific runner configuration offers some advanced options for the following runner types:

  • Command Line
  • FxCop
  • MSBuild
  • Rake
  • Powershell
  • XCode Project
  • NuGet Publish
  • NAnt
  • Visual Studio (sln)
  • Visual Studio 2003

Custom published artifacts

Allows you to specify which artifact files produced by the build should be published to Artifactory. At the end of the build the plugin locates artifacts in the build's checkout directory according to the specified artifact patterns, and publishes them to Artifactory to one or more locations, optionally applyinga  mapping for the target path of each deployed artifact. The pattern and mapping syntax for Published Artifacts is similar to the one used by TeamCity for Build Artifacts.

Custom build dependencies

Allows you specify dependency patterns for published artifacts that should be downloaded from Artifactory before the build is run. You can have detailed control over which artifacts are resolved and downloaded by using query-based resolution, adding to your artifact paths a query with the properties that the artifact should have before it can be downloaded. For further information read here about Resolution by Properties.

 

Configuring Generic Upload

As of version 2.1.4, the above configuration is not backward compatible and you may need to re-save the builds configuration for them to run properly.

If no matching artifacts are found, remember that these parameters may be case sensitive depending on the operating system, the agent and the server they are running on.

Attaching Searchable Parameters to Build-Info and to Published Artifacts

In the Build Configuration Settings you can select Parameters to define system properties or environment variables that should be attached to artifacts and their corresponding build info.

To define a parameter click on the Add new parameter button.

Adding a new parameter

FIll in the corresponding fields. 

Parameters relevant for builds run through Artifactory are:

  • buildInfo.property.* - All properties starting with this prefix are added to the root properties of the build-info
  • artifactory.deploy.* - All properties starting with this prefix are attached to any deployed produced artifacts

You can specify all the properties in a single file, and then define another property pointing to it.

To point the plugin to a properties file, define a property called buildInfoConfig.propertiesFile and set its value to the absolute path of the properties file.

It is also possible to point the plugin to a properties file containing the aforementioned properties.

The properties file should be located on the machine running the build agent, not on the server!


Specifying system properties and environment variables

Viewing Project-specific Configuration

Existing project configuration can be viewed in Settings under Projects | $PROJECT_NAME | $BUILD_NAME:

Viewing project specific configuration


Running a Build with the Artifactory Plugin

Once you have completed setting up a project runner you can run a project build. The Artifactory plugin takes effect at the end of the build and does the following:

  1. For all build runner types - Publishes the specified Published Artifacts to the selected target repository and applies corresponding path mappings.
  2. For Maven or Ivy/Ant build runner - Deploys all artifacts to the selected target repository together at the end of the build (as opposed to deploying separately at the end of each module build as done by Maven and Ivy).
  3. Deploys the Artifactory BuildInfo to Artifactory, providing full traceability of the build in Artifactory, with links back to the build in TeamCity. 

    Build log

You can also link directly to the build information in Artifactory from a build run view: 

Link to Artifactory Build Info from Build Run View


Triggering Builds in Reaction to Changes in Artifactory

The plugin allows you to set a new type of trigger that periodically polls a path in Artifactory, a folder or an individual file.  Whenever a change is detected in the polled element, the TeamCity build is triggered. For example, the build could be triggered when new artifacts have been deployed to the specified path in Artifactory.

Artifactory Pro required

Triggering builds is only available with Artifactory Pro


To configure a new build trigger, under Administration, select $PROJECT_NAME | $BUILD_NAME. Then, under Build Configuration Settings select Triggers.

Click the Add new trigger button to select an Artifactory Build Trigger


Build Triggers

Select the Artifactory Server URL and the Target repository. 

Complete the username and a password fields of a valid deployer for the selected repository.

Deploy permssion

The specified user must have deploy permissions on the repository

Then, in Items to watch, specify the paths in the selected repository in which a change should automatically trigger a build.

Defining build triggers in Artifactory

Be as specific as possible in Items to watch

In order to establish if there has been a change, Artifactory must traverse all the folders and their sub-folders specified in Items to watch. If the specified folders have a lot of content and sub-folders, this is a resource intensive operation that can take a long time.

Therefore, we recommend being as specific as possible when specifying folders in Items to watch.

 


Proxy Configuration

If the Artifactory server is accessed via a proxy, you need to configure the proxy by setting the following properties in the $TEAMCITY_USER_HOME/.BuildServer/config/internal.properties file


Licence

The TeamCity Artifactory plugin is available under the Apache v2 License.


Watch the Screencast

To see the Teamcity plugin in action you can watch the short demo screencast below.


Change Log

 Click to see change log details...

2.1.11 (7 Dec 2014)

  1. Compatibility with Gradle 2.x (TCAP-211)
  2. Bug Fixed (TCAP-205)

2.1.10 (8 May 2014)

  1. Bug Fixed (TCAP-206TCAP-72)

2.1.9 (17 Apr 2014)

  1. Adding Version Control Url property to the Artifactory Build Info JSON. (TCAP-203)
  2. Support for TeamCity 8.1 Release management feature issues
  3. Support working with maven 3.1.1
  4. Bug Fixed (TCAP-197TCAP-161)

2.1.8 (15 Jan 2014)

  1. Allow remote repository caches to be used for build triggering - TCAP-196
  2. Bug Fixes

2.1.7 (18 Dec 2013)

  1. Add support for blackduck integration - TCAP-185

2.1.6 (03 Sep 2013)

  1. TeamCity 8.0.x full compatability issue - TCAP-172
  2. Global and build credentials issue - TCAP-153
  3. Repositories refreshed by credential issue - TCAP-166
  4. Generic deploymentresolution on Xcode builds - TCAP-180
  5. Working directory in Gradle build issue - TCAP-125

2.1.5 (07 Jul 2013)

  1. Fix security issue - TCAP-172
  2. Improve generic resolution - BI-152

2.1.4 (21 Aug 2012)

  1. Compatible with TeamCity7.1.
  2. Bug Fixes 

2.1.3 (30 May 2012)

  1. Compatible with TeamCity7.
  2. Support 'Perforce' in release management.
  3. Support multiple deploy targets for the same source pattern in generic deploy.
  4. Support for custom build dependencies resolution per build. 

2.1.2 (12 Dec 2011)

  1. Compatible with Gradle 1.0-milestone-6.

2.1.1 (09 Aug 2011)

  1. Support for Gradle milestone-4
  2. Better support for releasing nested Maven projects
  3. Fixed minor Maven deployments discrepancies

2.1.0 (14 Jul 2011)

  1. Release management capabilities
  2. Bug fixes

2.0.1 (9 Jan 2011)

  1. Auto Snapshot/Release target repository selection
  2. Add ivy/artifact deploy patterns
  3. Improved Gradle support
  4. Bug fixes

2.0.0 (5 Dec 2010)

  1. Support for Gradle builds
  2. Support for maven3 builds
  3. Default deployer add resolver credentials
  4. Support for muti steps builds

1.1.3 (21 Nov 2010)

  1. Include/exclude pattern for artifacts deployment

1.1.2 (7 Nov 2010)

  1. Control for including published artifacts when running license checks
  2. Limiting license checks to scopes
  3. Control for turning off license discovery when running license checks
  • No labels