Distribute large build across many build agents

268 views Asked by At

I have a large solution, with many projects and many files, and only one build configuration, Release. I am using TFS, and the complete rebuild takes like 2 hours.

Is it possible to distribute the build across several agents, so that they will compile different projects, or, even better, different files? Something like dictcc? I can distribute the build on up to 10+ different machines, but the build only works on one.

For now, my impression is that agents can only have specialized jobs, like build, run tests, etc, but not split and distribute only one build.

I already tried optimizing the build, but still the project is big and can benefit on parallel build

2

There are 2 answers

3
Giulio Vian On

You can but but must roll-up your sleeves: there is no built-in template that helps, but Jim explains how to make one.

Do not forget that you can also leverage multi-CPU/Core as explained in Building Multiple Projects in Parallel with MSBuild.

0
MrHinsh - Martin Hinshelwood On

Your best option would be to break your solution down into defunct components that can be built separately.

If you seperate each bit and build and test before publishing as Nuget you can distribute easily across build servers and even only build the bits that have changed.

This process will also work in the new build system coming in 2015 that does not use XAML.