1
votes

I have one special requirements setting up a build definition in TFS 2012. I have a big solution with 26 depending projects. Lets assume we call these project A to Z. Lets assume the build ordering is first to build A, then to build B, because B depends on A, then to build C, because it depends on A and B an so on ...

A

B <- A

C <- A,B

..

Z <- A,B,C,D,...,Y

My plan is to have 26 different build definitions in order to setup continous integration. Then a build should be started just in case a related project's sourcecode has changed.

For instance if I change project C, I do not want that A and B are build before. But that's not possible, because the build definiton of C needs a workspace setup with A, B and C, otherwise C won't compile.

My question is now: How can I build just those project with CI which actually has changed?

1
are you asking how to do incremental builds in CI?Mike Cheel
sometimes its hard to find the correct term for a specific problem but it seems that incremental builds is the term I was looking for. But there is a further question because incremental builds could be the solution. If I use several build agents, how can incremental builds work, if the build controller decides which agent he will use. If it switches all the time and I have 4 agents, the agent will get the newest sourccode for all depending projects minimum 4 times?Andrej
The agent will get the appropriate source code when it's chosen to run a build. If it isn't chosen, it does nothing.Daniel Mann

1 Answers

2
votes

Try going into the build definition, Process tab. Under Basic, change Clean Workspace to None. This will setup incremental builds. This is similar to Build in visual studio vs Rebuild in visual studio. It will only rebuild the things that have changed.