Introduction
Assimilating Artifactory into a continuous integration build process is very straightforward.
Treat the CI server as a regular build client and, as such, the CI server resolves dependencies from Artifactory and deploys artifacts into a dedicated repository wihtin Artifactory.
The Build Integration feature of Artifactory takes this integration one step further, by closely integrating your Artifactory and your CI server to provide fully-reproducible builds and full visibility of deployed artifacts, used dependencies and information regarding the build environment.
By using the Build Integration Add-on you are able to:
- See all the builds that are published and their build results in Artifactory.
- Explore each build's modules, including published artifacts and dependencies with their scope.
- Obtain information about the original build environment.
- Check if a specific artifact is required/a result of a build, including alerting if such an artifact should be targeted for removal.
- Manipulate all the artifacts and/or dependencies from a specific build as a single unit (move, copy, export etc.).
- Receive bidirectional links between build and artifact information inside the build server and Artifactory pages.
Jenkins/Hudson, Team City and Bamboo Integrations
The Build Integration currently supports Jenkins/Hudson, TeamCity and Bamboo. Similar integration with other build technologies stacks, are currently being worked-on - stay tuned.
The build technologies supported are: Maven 3 and 2, Gradle, Ivy/Ant, .Net and Generic builds (look under each CI server to see the technologies supported by the plugin for this server).
To learn more about installation and usage instructions specific to your CI server, follow these links:
Inspecting and Managing Builds
Builds and Per-Build History
Once you have run a build in your your CI server that deployed to Artifactory, you can immediately see the corresponding build results inside Artifactory. A new 'Builds' menu item lists all known CI server projects that published their build results:

Each build corresponds to its CI server project (job) counterpart and contains a build history of all runs, that reflect the build history in the CI server:

For each build item in the history you can drill down and obtain more fine details about it, as explained in the next section.
You can also view the build in the CI server by selecting 'Show in CI Server'. In addition, you can also navigate back to Artifactory from the CI server UI.
Drilling-down into the single build level, each build contains three sections of information:
- Visual general build information about the build and its environment.
- Visual display for modules with their artifacts and dependencies.
- Generic view of the build information in JSON format.
This section contains general information about the build.
From here, you can save the build's artifacts and/or dependencies as a Smart Search Result to further manipulate the search, as explained below.

Build Modules
Each build publishes module(s) into Artifactory, displayed in this view, together with the number of artifacts and dependencies which they contain.

Module Artifacts and Dependencies
If you drill down even further, you can inspect each module's published artifacts and dependencies.
NOTE! the deployed artifacts are collected with their types and dependencies contain the scope(s) that the dependencies used in during the build.
You can also go from each item to its tree view in Artifactory and view other details about it.

Build Environment
In the Environment tab, you can view build properties and other environmental details that are otherwise lost if you want to replay the build at a later point in time (e.g. JDK used, system architecture etc.).

Licenses
In the Licenses tab, you receive a centralized view of all the artifacts and dependencies involved and their license analysis.

Governance
The Governance tab displays the integration status of this build with a Black Duck Code Center application. In this tab you can also find the components approval statuses, licenses and security vulnerabilities.

Build Diff
In the Diff tab, you can compare the current build artifacts/dependencies/environment with an older build to see what has changed (new artifacts added, old dependencies deleted etc).

Release History
The Release History tab displays a timeline of the selected build's release landmarks.

Generic BuildInfo View
The generic BuildInfo view displays a JSON representation of the data used to form the visual build information in Artifactory.
This can be used by REST or for debugging and is also exposed in the basic OSS version of Artifactory.

Exporting and Manipulating Build Items
From the build's general information panel, you can save the build's artifacts and/or dependencies as a Smart Search Result and then manipulate it in order to promote it to another repository, copy it or export all the items to disk to have an external distributable unit of the build with all its dependencies and artifacts.

Repository View of Builds
Artifacts inside Artifactory are also aware of their possible association to builds. When an artifact is associated with a build, either as a published artifact or as a dependency it is visible on a new Builds tab (when selecting the artifact in the tree view).
Moreover, you also receive warnings when trying to remove from the user interface, an artifact that is associated with one or more builds and which without, build reproducibility is affected.
You can navigate directly from the Builds view to the build information in Artifactory or to the build page in your CI Server:

Behind the Scenes
Behind the scenes the Artifactory plug-in for your CI server performs two major tasks:
- It deploys all the artifacts in one go to Artifactory. This is performed in an optimized and expedient manner and only at the end of the build, guaranteeing a more coherent deployment when building multi-module projects (Maven's and Ivy's methods deploy at the end of each sub-module cycle, which can result in partial deployments if the build fails in a later module).
It sends a BuildInfo data object to Artifactory via REST at the end of deployment. BuildInfois a structured JSON object containing all the data about the build environment, artifacts and dependencies, in a standard and open manner.