How Do I Set Up My Project To Work With Chained Builds?

I have read this page about dependent builds but I don't really understand it fully.

At the moment I have an ant target that runs a TestNG suite.

This ant target is dependent on the compile target.

In TeamCity I have one build that just runs the compile target so that we get notifications on compile errors and there is a second config that runs the TestNG suite.

The problem is that we are at the start of a project and there are 32 test failures out of 105.

This means that every commit triggers a build failure notification.

Since the devs are always getting build notifications in the IDE they now ignore them, which is why we have a separate compile config so that emails are sent when that one fails.

I thought about creating three separate configs :

  1. Compile
  2. Regression tests (or known passes)
  3. New phase tests (or known failures)

Config 3 would continue to send failure notifications, but if a commit caused a compile error or it broke one of the regression tests we would get email notifications.

Obviously this requires some manual upkeep of the testng suite so that when a new phase is complete it moves into the regression suite, but I am OK with that.

I believe that in this situation, all three configs trigger a compile and they will be competing for a build agent, which is why I am trying to understand the build dependencies.

As I understand it, TeamCity would trigger on 3, which would trigger 2, which would trigger 1 and they would run in order from 1 to 3.

However, what I don't understand is how I configure my ant script.

If those 3 configs are 3 targets then the compile target will run 3 times as ant has its own dependencies.

TeamCity can create artifacts but if I were to use them I don't understand how I would refer to them in the classpath of my ant script.

How do I set up my project to work with chained builds?

Please sign in to leave a comment.