Snapshot dependent build chain with builds on different VCS roots

What is the expected behavior if I have the following sort of snapshot dependency build chain?:

Build Configuration A on VCS Root X depends on Build Configuration B on VCS Root X which depends on Build Configuration C on VCS Root Y.

Since A and B are on one VCS Root and C is on a different one, I'm interpreting the documentation to mean that A, B and C will use time to select SCM revision for building.   If that's the case, how does TeamCity decide whether or not to build a snapshot dependency if "Do not run new build if there is a suitable one" is true? This section of the documentation reads as though dependencies will always be rebuilt:

When the build B starts to run on the agent, TeamCity adjusts 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 in time.

It appears that our builds that correspond to B and C ALWAYS get queued and rebuilt if A is triggered.  What we want is to only rebuild B if it has changes or B and C if C has changes since the last time it was built.  The effect is that our central dependencies are constantly rebuilding.

Comment actions Permalink

I've built a test chain that does not cross VCS root boundaries and have the same result.  I've logged an issue describing what I interpret to be incorrect behavior:

Comment actions Permalink


we'll continue troubleshooting in issue comments.



Please sign in to leave a comment.