Draco.NETDraco.NET (http://draconet.sourceforge.net), inspired by the Java CruiseControl Continuous Integration system, was the first .NET Continuous Integration system to appear (although under a different name). Because of this, Draco.NET is the most mature and easy to implement Integration system currently available.NOTEThis is based on Draco.NET 1.5Draco.NET supports the following SCM products:
Draco.NET supports building using NAnt or Visual Studio.NET and has a very intuitive and easily extendable pluggable architecture. InstallingInstalling Draco.NET is incredibly easy. The distribution contains a client and server MSI (Microsoft Installer) setup package that runs flawlessly. ConfiguringListing 7.2 should look familiar since the Hippo.NET project was based upon this Draco.NET implementation. Listing 7.2. Draco Server Configuration File<draco xmlns="http://www.chive.com/draco"> <pollperiod>60</pollperiod> <quietperiod>60</quietperiod> <mailserver>mail.yourdomain.com</mailserver> <fromaddress>you@yourdomain.com </fromaddress> <builds> <build> <name>aspell-net</name> <pollperiod>10</pollperiod> <quietperiod>30</quietperiod> <notification> <email> <recipient>you@yourdomain.com</recipient> </email> <file> <dir>C:\book\BuildOutput</dir> </file> </notification> <nant> <buildfile>build\master.build</buildfile> </nant> <svn> <url>file:///C:/book/svnrepository</url> </svn> <ignorechanges> <ignore comment="autobuild"/> </ignorechanges> </build> </builds> </draco> Listing 7.2 has the comments removed for sake of space, but the file is so well structured and commented that it is almost self-explanatory. The omitted comments are so good that you can literally cut and paste them into the configuration file and change the settings for your specific scenario. Note that this example uses Subversion (SVN) SCM. This build name (bolded in Listing 7.2) is very important because it will be in the notifications (like emails) and is used by the client to manually start a build.TIPJames Geurts has recently released a Web-based log viewer for Draco.NET (http://blogs.biasecurities.com/jim).A nice feature here is that you can use multiple notifications. This logs to an XML file (Listing 7.3) on the server and sends out an email (shown in Figure 7-3). Listing 7.3. XML File Notification<BuildResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org ![]() <Success>true</Success> <BuildOutput> ... </BuildOutput> <Module>aspell-net</Module> <BuildTime>2003-11-04T10:10:03.0391010-06:00</BuildTime> <Modifications> <Modification> <Date>2003-11-04T09:30:36.1214920-06:00</Date> <User>bnantz</User> <Comment>initial import</Comment> <Files> <File> <Type>Add</Type> <Directory>\</Directory> <File>aspell.net</File> <Revision>1</Revision> </File> <File> <Type>Add</Type> <Directory>\</Directory> <File>aspell-dev-0-50-3-3</File> <Revision>1</Revision> </File> ... </Files> </Modification> </Modifications> </BuildResult> Figure 7-3. Draco.NET Email Notification.[View full size image] ![]() RunningOnce the system is set up, any check-in like the one shown in Figure 7-4 will trigger a build. Figure 7-4. Checking in to SVN Using Tortoise.[View full size image] ![]() Figure 7-5. Draco.NET Command-Line Client.[View full size image] ![]() Build SystemDraco.NET now supports building without using NAnt. You can use the <solution> tag in the config file to point to the path of the solution you want to build. I am not sure, but I suspect this is based on the NAnt <solution> task. I think this because neither implementation supports Enterprise Template Projects. |