问题
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?
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/1273619/how-do-i-setup-multiple-triggers-for-cruisecontrol-net