TeamCity Build Dependencies article - Build Chain Triggering for dependant sources

Hi,

I'm not sure whether I understood the article correctly, but if my undertanding is correct the only way to trigger an upstream build is to "add a VCS trigger with the “Trigger on changes in snapshot dependencies". This would mean that in our setup (see below) any change to the B library would trigger a rebuild of A, but also a rebuild of C, D, E and the website. The building of A is not required and in this example not so much of an issue. But when there is a change in C, I only want C and the Website to be rebuild; all the other generated dll's are still OK.

Our build configuration is something like this:

              A
               |
              B ------
            /  | \     |
          C  D E      |
           \   |  /   /
          Website

How can I configure TC so to get the desired behaviour?

Kr,
Tom

4 comments
Comment actions Permalink

Tom, please clarify your setup. What is the direction of dependencies in your case? A has snapshot dependency on B, B on C, D and E, and website?

0
Comment actions Permalink

I'd assume that tasks have snapshot dependencies to tasks above them.

I have the same setup, and would like to have a similar behavior - maybe with the addition of a "quiet time", i.e. don't start the downstream build if one of the upstream builds is  still running.
--
cg

0
Comment actions Permalink

"What is the direction of dependencies in your case?" - top to bottom, i.e. the website is dependant on A, B, C, D & E.
A has snapshot dependency on B, B on C, D and E, and website?" - No, not at the moment because having that setup a change in D would cause A and B to be rebuild as well which is not necessary when there has been no change in those sources.
"maybe with the addition of a "quiet time", i.e. don't start the downstream build if one of the upstream builds is  still running." - Indeed, that would be the ideal scenario.

To clarify things a bit; A, B, C, D and E all have their output in a shared assemblies directory by having a copy to xxx postbuild step in the project file. I do have the artifacts defined as well so maybe I can utilize the artifacts dependency as well.

How do you typically configure something like this?

0
Comment actions Permalink

As a guide to TeamCity dependencies I would recommend to take a look at: http://confluence.jetbrains.net/display/TCD7/Build+Dependencies+Setup
For example, you may not know that if builds are combined by snapshot dependencies in most of the cases TeamCIty won't re-build parts of the chain if there were no new changes.

0

Please sign in to leave a comment.