For Instance:
I want to build Project A. Project A Depends on Project B and Project C.
Edit: Each project has its own trunk in SVN: [repository]/ProjectA/trunk [repository]/ProjectB/trunk [repository]/ProjectC/trunk
My question has a couple of parts:
I'm a newbie to CCNET so if there are some underlying concepts please don't assume I am aware of them. Details are my friend :-D
Edit: I'm using SVN as my source control provider.
Outside of writing your build scripts to support Continuous Integration, your main configuration task in getting an instance of CruiseControl.NET running for your project is editting the Server's configuration file. This is defined in an XML file which by default is called ccnet.config in the same directory as the server application.
Welcome to CruiseControl.NET, an Automated Continuous Integration server, implemented using the .NET Framework. CruiseControl.NET Wiki – Documentation, Downloads, Support, … About CruiseControl.NET – What is CruiseControl.NET? Hosting infrastructure sponsored by Nauck IT KG. Read more
If you logoff this user the CruiseControl.NET server will shut down and you won't get any builds. In order for Test Studio and Telerik Testing Framework tests that interact directly with the desktop to work you'll need to leave your CruiseControl.NET machine logged on and displaying the desktop all the time.
CruiseControl.NET can be run in two modes: There is a problem with using Windows service mode. Test Studio tests and Telerik Testing Framework tests require the browser be able to run and interact with the desktop. When running builds and tests under a Windows service, desktop interaction is disabled.
You can use a Project Trigger to start ProjectA when ProjectB is successfully built, like this:
<project name="ProjectA">
<triggers>
<projectTrigger project="ProjectB">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger"
seconds="60"
buildCondition="ForceBuild" />
</projectTrigger>
</triggers>
...
</project>
This polls the build result for ProjectB every 60 seconds, and if there is a new successful build then ProjectA is triggered. By default it will look for the project on the same CCNET server, but you can point it at another one with the serverUri
attribute. You can add another trigger for ProjectA if you also want it to build when its Subversion repository is updated.
If you're running the builds on the same server you can put them in the same queue if they might interfere with each other in any way, otherwise you could have them both building at the same time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With