We have a similar scenario--a repository and build server with over 100 
separate buildable components and branches.

Our approach is to use Nant to do the heavy lifting and orchestrate the builds. 
 We have our Nant scripts organized in a hierarchical directory tree so that we 
can build any branch of the tree with a single command.

Using this infrastructure, we then set up 8 - 10 projects in CruiseControl.NET. 
 Doing so makes managing the load on the source code control server (Subversion 
in our case) much easier, and allows better control over concurrency issues 
with multiple builds running simultaneously on our build server.  As well, 
controlling file system and Subversion locking contention has been easier (but 
still not a simple task).

In general, our system is designed so as to minimize the size and complexity of 
the CruiseControl.NET configuration file and off load the configuration and 
build management to Nant (and the actual building to MSBuild).  Nant is much 
better suited to these tasks, is extensible and far more easily centralized.

Hope this helps.

Ken Parrish
Gomez, Inc.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of Leszek Ciesielski
Sent: Tuesday, December 15, 2009 3:30 PM
To: [email protected]
Subject: Re: [ccnet-user] Throttling CVS whilst allowing simultaneous builds

Did you try grouping projects into several queues, one per processor?

On Tue, Dec 15, 2009 at 5:38 PM, Jon Rimmer <[email protected]> wrote:
> Hi,
>
> I have a CruiseControl.NET server with quite a large number of
> projects, around 170, all pulling from the same CVS server. Initially,
> each project had a separate queue, but this was resulting in a large
> number of concurrent CVS instances, which seemed to be overloading the
> server and resulting in failed builds. To address the problem, I moved
> all the projects onto a single queue and greatly increased the
> interval between continuous integration checks/builds. This has
> resolved the failed builds, but I now have the problem that, because
> they are all on the same queue, all the projects are blocking each
> other, even when they are not accessing CVS. Ideally, I would like to
> be able to throttle CVS connections, whilst still allowing projects to
> build simultaneously. Can anybody suggest an approach that would allow
> this?
>
> Jon
>

Reply via email to