Splitting build cross the network?

Posted by Dandikas on Server Fault See other posts from Server Fault or by Dandikas
Published on 2010-03-31T12:51:51Z Indexed on 2010/03/31 12:53 UTC
Read the original article Hit count: 328

Is there a known solution for splitting build process cross the network machines?

Use case:

We are an average software development company. We own around 50 development workstations (Quad Core 2.66Ghz, 4 GB ram, 200 GB raid). No need to tell that at any single moment not every machine is loaded to the max.

There are 5 to 15 projects running simultaneously at any single moment. Obviously all of them are continuously build on server, than deployed to proper environment. Single project build is taking from 3 to 15 minutes.

The problem: Whenever we build 5 projects in a row the last project is going to be ready after around 25 - 50 minutes. Building in parallel does not solve the problem (build is only a part of the game, than you need to deploy, run tests etc.)

YES the correct solution is to add another build server, but "That involves buying new Expensive hardware, and we already spent a lot!". Yea, right(damn them)!

Anyway. What about splitting build among developers workstation? Lets say whenever we need to build project "A" we check 5 workstations and start build on all that are not overloaded. The build can be canceled by a developer if he really needs all the power of his machine as long as there is at least 1 machine that is still building. After build is finished deployment can be performed to a proper environment (hosted on some server, not on workstation :) ). The bigger the company the more this makes sense to me.

Anyone tried something like this? Are there any good practices? Any helpful software?

© Server Fault or respective owner

Splitting build cross the network?

Posted by Dandikas on Stack Overflow See other posts from Stack Overflow or by Dandikas
Published on 2010-03-31T12:54:19Z Indexed on 2010/03/31 13:03 UTC
Read the original article Hit count: 328

Is there a known solution for splitting build process cross the network machines?

Use case:

We are an average software development company. We own around 50 development workstations (Quad Core 2.66Ghz, 4 GB ram, 200 GB raid). No need to tell that at any single moment not every machine is loaded to the max.

There are 5 to 15 projects running simultaneously at any single moment. Obviously all of them are continuously build on server, than deployed to proper environment. Single project build is taking from 3 to 15 minutes.

The problem: Whenever we build 5 projects in a row the last project is going to be ready after around 25 - 50 minutes. Building in parallel does not solve the problem (build is only a part of the game, than you need to deploy, run tests etc.)

YES the correct solution is to add another build server, but "That involves buying new Expensive hardware, and we already spent a lot!". Yea, right(damn them)!

Anyway. What about splitting build among developers workstation? Lets say whenever we need to build project "A" we check 5 workstations and start build on all that are not overloaded. The build can be canceled by a developer if he really needs all the power of his machine as long as there is at least 1 machine that is still building. After build is finished deployment can be performed to a proper environment (hosted on some server, not on workstation :) ). The bigger the company the more this makes sense to me.

Anyone tried something like this? Are there any good practices? Any helpful software?

(90% of the projects are .net C#)

© Stack Overflow or respective owner

Related posts about continuous-integration

Related posts about build