Dependent Build

Skip to end of metadata
Go to start of metadata
You are viewing documentation of TeamCity 4.x, which is not the most recent released version of TeamCity. Please refer to the listing to choose another version.
Search

Searching TeamCity 4.x Documentation

Table of Contents

In TeamCity one build configuration can depend on one or more configurations. Two types of dependencies can be specified:

Snapshot Dependency

A dependency of a build configuration on a different one which enforces that both builds use the same sources snapshot (used sources revisions correspond to the same moment). If a build is queued and there is no dependent build for the same sources snapshot, the necessary dependent build is automatically added into the build queue.

Let's consider an example to illustrate how snapshot dependencies work.

Let's assume that we have two build configuration, A and B, and configuration A has snapshot dependency on configuration B.

  1. When a build of configuration A is triggered, it automatically triggers a build of configuration B, and both builds will be placed into the Build Queue. Build B should start first and build A will wait in the queue till the B is finished (if no other specific options are set)
  2. When the build B starts to run on the agent, TeamCity fixes the sources to include in the build A at this exact moment. All builds will be run with sources taken on the moment the build B started to run on a build agent.
    If the build configurations connected with snapshot dependency share the same set of VCS roots, all builds will run on the same sources. Otherwise, if the VCS roots are different, changes in the VCS will correspond to the same moment of time.
  3. When the build B has finished and if it finished successfully, then TeamCity will start to run build A.
    Please note, that the changes to be included in the build A could become not the latest ones to the moment of build start to run. In this case build A becomes a History Build

The above example shows the core basics of the snapshot dependencies, straight forward process, without additional options. For snapshot dependency options refer to the setting dialog description.

If a build has snapshot dependencies on several builds, the snapshot will be taken at the moment the first build of the whole set (chain) starts to run on a build agent. Depending on the dependencies topology builds could be subsequent or can be started in parallel.

Two or more builds connected by snapshot dependencies form the Build Chain.
By default, TeamCity preserves builds that are a part of a chain from clean-up, but a user can switch off the option. Refer to the Clean-Up description for more details.

Artifact Dependency

Artifact Dependencies provide you with a convenient means to use output (artifacts) of one build in another build. When an artifact dependency is configured, the necessary artifacts are downloaded to the agent before the build starts. You can then review what artifacts were used in a build or what build used artifacts of the current build on a Dependencies tab of build results.

To create and configure an artifact dependency use the Dependencies page. If for some reason you need to store artifact dependency information together with your codebase and not in TeamCity, you can configure Ivy Ant tasks to get the artifacts in your build script.

Please note that if both snapshot dependency and artifact dependency on last finished build are configured for a build configuration, then artifacts will be taken from the build with the same sources.
Notes on Cleaning Up Artifacts
Artifacts may not be cleaned if they were downloaded by other builds and these builds are not yet cleaned up. For a build configuration with configured artifact dependencies you can specify whether artifacts downloaded by this configuration from other builds can be cleaned or not. This setting is available on the cleanup policies page.




See Also:

Labels:

dependent dependent Delete
artifact artifact Delete
build build Delete
snapshot snapshot Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.