views:

148

answers:

2

We have a continuous build setup on our SVN repo using cc.net. The trunk has a sub-folder called "Bin". After a successful build, we copy all our DLLs into the bin folder and check it in. This causes an endless build cycle because the bin folder changes constitute a change and this triggers the interval trigger to commission another build.

Is there any setting on the cc.net side we can set to tell cc.net to ignore the changes to the bin folder?

TIA rams

A: 

I have never used cruisecontrol.net but in cruisecontrol we employ the "modificationset" task to only specify the folders whose changes should be polled by the continuous integration build. I dont know if there is equivalent to this in cc.net though.

But if you really need to have the DLLS checked into source control, you could consider keeping the binaries separately in a different branch (or even a separate "package" repository if you can afford that). Then the build projects can be configured to use seperate workspaces per branch. For eg., a CI project configured to pick up changes from the TRUNK changes will totally ignore the changes made on other branches. This would avoid builds getting triggered by changes in your DLL branch.

Critical Skill
@Critical Skill - Thanks for taking time to answer. I'll look into the modification set. Like I said in the commend above, putting the binaries back into the source repo is a stop-gap arrangement to address a gap in our process. In fact we do have a Deploy repo where we publish the build into. I would like to use the bins from that repo but for a little while we are stuck with the current arrangement
rams
A: 

Figured this one out based on an answer to a related question.

You need to use the "filtered" sourcecontrol node in your ccnet.config file. Here is a sample. Note the use of exclusionFilters node to exclude changes to files in a folder

<sourcecontrol type="filtered">
    <sourceControlProvider type="svn" autoGetSource="true">
        <trunkUrl>https://servername/ProjectName/trunk&lt;/trunkUrl&gt;
        <workingDirectory>C:\ProjectName\Source</workingDirectory>
        <executable>C:\Program Files\svn\svn.exe</executable>
        <username>uname</username>
        <password>pwd</password>
        <timeout units="minutes">300</timeout>
    </sourceControlProvider>
    <exclusionFilters>
        <pathFilter>
            <pattern>/trunk/bin/*.*</pattern>
        </pathFilter>
    </exclusionFilters>
</sourcecontrol>

HTH

rams