0

I have a TFS 2010 build definition with its XAML workflow logic and stuff.

This is a Continuous Integration def, and it's associated to several solutions included in the same server/workspace folder.

I want it to compile and run tests but just the solutions which workspaces were affected. To be clearer, for example: I check in a .cs file of a Solution; I want the definition to compile ONLY the solution that has the change and discard the other solutions unless the check-in changeset involves a file included in those solutions.

I did some research of IncrementalBuild and IncrementalGet (which can be achieved with the 'Clean Workspace' parameter of the Build Definition) but it is still compiling ALL solutions.

Is there a way to accomplish this, by changing the XAML workflow or any special parameter?

Thanks,

Silvestre
  • 804
  • 11
  • 25

1 Answers1

1

AFAIK, you'd have to split these solutions out into different builds. When a build definition is triggered, it's going to process all the items to build. Now the solution should skip projects that are up to date but the solution itself will be processed.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
  • Yep; I guess it's the only way: I couldn't find an easy way out to achieve this. Marking your answer as the valid one, thanks. – Silvestre Apr 05 '13 at 19:14
  • The only way to know that solution has changes it to build it, Tfs has no understanding on contents of solution. When build is triggered by checkin its because the mapped workspace path has change in source control. The Clean Workspace parameter affects how msbuild will handle the process, if previous output is there it will skip the parts where compile is not needed just like localy studio would. The only possible link out of box is to split solutions to build into seperate builds and match their path to that of workspace. Otherwise you will need to add custom logic to filter the solutions. – drk Apr 08 '13 at 10:54