views:

350

answers:

2

I'm new to CruiseControl.net and am attempting to setup it up for a project I'm working on. The project is kept under subversion, but the whole project is made up of the core project, and several components, each one a separate subversion project, each with a trunk, possible branches and tags. I need to setup cruisecontrol.net so that a change in the main core project subversion folder as well as any of the included components triggers a build. Obviously if the commit consists of files committed to multiple components, I still only want one build. Is it possible?

+2  A: 

Make sure each project includes its component dependencies via svn:externals. Then configure CruiseControl.NET to check externals:

<checkExternals>True</checkExternals>

This has the added advantage that you can choose whether to follow the HEAD of the dependency components, or point the svn:externals to a fixed revision.

Wim Coenen
+3  A: 

It is possible: Use Multi Source Control Block:

<sourcecontrol type="multi">
    <sourceControls>
        <svn>
            <trunkUrl>svn://foo</trunkUrl>
            <workingDirectory>c:\dev\foo</workingDirectory>
        </svn>
        <svn>
            <trunkUrl>svn://bar</trunkUrl>
            <workingDirectory>c:\dev\bar</workingDirectory>
        </svn>
    </sourceControls>
</sourcecontrol>

PITFALL: Note that sourcecontrol node changes from <sourcecontrol type="svn"> to <svn> if used inside Multi Source Control Block.

The Chairman