TeamCity 5.0 Help

Dependent Build

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

Snapshot Dependency

A snapshot dependency from build configuration A to build configuration B enforces that each build of A has a "suitable" build of B so that both builds use the same sources snapshot (used sources revisions correspond to the same moment).

Snapshot dependency alter the builds behavior in the following way:

  • when a build is queued and there is no "suitable" build in a Build Configuration it snapshot-depends on (suitable means using the same sources snapshot), the necessary dependency builds are automatically added into the build queue;

  • build does not start until all it's snapshot dependencies are ready;

  • if there is a snapshot dependency and artifact dependency on the last finished build pointing to the same build configuration, TeamCity ensures that artifacts are downloaded form the same-sources build.

  • all builds linked via snapshot dependencies are started by TeamCity with explicit specification of the sources revision. The revision is calculated so that it corresponds to the same moment in time (for the same VCS root it is the same revision number). For a queued build chain (all builds linked with snapshot dependency), the revision to use is determined upon the start of the first build in the chain. At this time all the VCS roots of the chain are checked for changes and the current revision is fixed in the builds.

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 (5.Dependencies)

  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.

  3. When the build B has finished and if it finished successfully, then TeamCity will start to run build A.

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

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 5.Dependencies page. If for some reason you need to store artifact dependency information together with your codebase and not in TeamCity, you can configure Configuring Dependencies to get the artifacts in your build script.

Last modified: 20 April 2023