Reputation: 6811
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
Upvotes: 1
Views: 1100
Reputation: 6811
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</trunkUrl>
<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
Upvotes: 3
Reputation: 2539
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.
Upvotes: 0