.net - CruiseControl.NET, SVN and multiple dependencies -



.net - CruiseControl.NET, SVN and multiple dependencies -

i'm using cruisecontrol.net , devenv within ccnet.config automate build of vs 2005 .net solution. solution contains references several projects, dependent on each other library folder contains 3rd party dll's , other dll's compiled projects i've created.

the problem i'm having trying setup ccnet.config file latest updates of each of projects within .net sln file , library folder svn before begins devenv task.

can help or point me in right direction can't seem find on web?

below ccent.config file, i'm using preprocessor's avoid repetition reusing other solution files of similar structure:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <cb:define maintrunk="svn://mysvnurl"/> <cb:define workingdir="c:\svn\"/> <cb:define svnexec="c:\program files\collabnet subversion client\svn.exe"/> <cb:define artifactsdir="\artifacts"/> <cb:define name="myprojectname"> <project name="$(projectname)" description="$(projectname) build"> <triggers> <!-- check source command every x time changes, , run tasks if changes found --> <intervaltrigger name="continuous" seconds="500" buildcondition="ifmodificationexists" initialseconds="5"/> </triggers> <sourcecontrol type="svn"> <trunkurl>$(maintrunk)/$(projectname)/trunk</trunkurl> <workingdirectory>$(workingdir)$(projectname)</workingdirectory> <executable>$(svnexec)</executable> </sourcecontrol> <tasks> <devenv> <solutionfile>$(workingdir)$(projectname)\$(projectname).sln</solutionfile> <configuration>debug</configuration> <executable>c:\program files\microsoft visual studio 8\common7\ide\devenv.com</executable> <!--<buildtimeoutseconds>10</buildtimeoutseconds>--> </devenv> </tasks> <publishers> <xmllogger /> <artifactcleanup cleanupmethod="keeplastxbuilds" cleanupvalue="50" /> </publishers> </project> </cb:define> <cb:scope projectname="projecta"> <cb:myprojectname/> </cb:scope> </cruisecontrol>

update: after asking question, started thinking perhaps way tackle check modifications on dependent projects , if there change, trigger build of vs solution file - projecta. i've since updated ccnet.config accordingly (see below). apply dependent projects within vs sln well.

would still appreciate if take , allow me know if going in right direction.

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <!-- cruisecontrol.net server configuration file. add together projects below! --> <cb:define maintrunk="svn://svnurl"/> <cb:define workingdir="c:\svn\"/> <cb:define svnexec="c:\program files\collabnet subversion client\svn.exe"/> <cb:define artifactsdir="\artifacts"/> <cb:define name="myprojectname"> <project name="$(projectname)" description="$(projectname) build"> <triggers> <projecttrigger project="libraries"> <triggerstatus>success</triggerstatus> <innertrigger type="intervaltrigger" seconds="120" buildcondition="forcebuild" /> </projecttrigger> </triggers> <sourcecontrol type="svn"> <trunkurl>$(maintrunk)/$(projectname)/trunk</trunkurl> <workingdirectory>$(workingdir)$(projectname)</workingdirectory> <executable>$(svnexec)</executable> </sourcecontrol> <tasks> <devenv> <solutionfile>$(workingdir)$(projectname)\$(projectname).sln</solutionfile> <configuration>debug</configuration> <executable>c:\program files\microsoft visual studio 8\common7\ide\devenv.com</executable> <!--<buildtimeoutseconds>10</buildtimeoutseconds>--> </devenv> </tasks> <publishers> <xmllogger /> <artifactcleanup cleanupmethod="keeplastxbuilds" cleanupvalue="50" /> </publishers> </project> </cb:define> <cb:scope projectname="projecta"> <cb:myprojectname/> </cb:scope> <project name="libraries"> <triggers> <intervaltrigger name="continuous" seconds="60" buildcondition="ifmodificationexists" initialseconds="5"/> </triggers> <sourcecontrol type="svn"> <trunkurl>svn://svnurl/libraries</trunkurl> <workingdirectory>c:\svn\libraries</workingdirectory> <executable>c:\program files\collabnet subversion client\svn.exe</executable> </sourcecontrol> </project> </cruisecontrol>

provided include 3rd party libraries in each of project roots via svn:externals property on project trunk pointing library folder, utilize next switch within sourcecontrol configuration block:

<checkexternals>true</checkexternals>

this way cc.net triggers compilation upon modifications in library folder, too.

you might need:

<checkexternalsrecursive>true</checkexternalsrecursive>

.net svn cruisecontrol.net

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -