Edgewall Software

Version 4 (modified by anonymous, 16 years ago) (diff)

--

Here is one sample build recipe, with comments below.

<build description="Building System"
      xmlns:svn="http://bitten.cmlenz.net/tools/svn"
      xmlns:sh="http://bitten.cmlenz.net/tools/sh"
      xmlns:python="http://bitten.cmlenz.net/tools/python"
      xmlns:x="http://bitten.cmlenz.net/tools/xml">
 <step id="Checkout">
   <sh:exec file="echo" args="Checkout start"/>
   <svn:checkout url="file:///C:/Trac/Repo/project" path="" revision="${revision}"/>
   <sh:exec file="echo" args="Checkout complete"/>
 </step>
 <step id="Build">
   <sh:exec file="echo" args="Build start"/>
   <sh:exec file="msbuild.exe" args="project.sln @C:\\Builds\\utils\\logger\\msbuild.rsp"/>
   <x:transform src="msbuild-output.xml" dest="msbuild-result.xml" stylesheet="..\\utils\\logger\\msbuild.xsl" />
   <sh:exec file="type" args="msbuild-result.xml"/>
   <sh:exec file="echo" args="Build complete"/>
 </step>
 <step id="Document">
   <!-- Doxygen to be used here -->
 </step>
 <step id="Smoke Test">
   <sh:exec file="echo" args="Test start"/>
   <python:exec file="C:\Python25\Scripts\qmtest.py"
                args="-DC:\\Builds\\tdb report -o..\\PreDist\\results.xml c:\\Builds\\PreDist\\results.qmr"/>
   <x:transform src="C:\\Builds\\PreDist\\results.xml" dest="test-results.xml" stylesheet="C:\\Builds\\Utils\\logger\\qmtest.xsl" />
   <report category="test" file="test-results.xml" />
   <sh:exec file="echo" args="Test complete"/>
 </step>
 <step id="Package">
   <sh:exec file="echo" args="Predist start"/>
   <sh:exec file="C:\Program Files\NSIS\makensis" args="c:\\Builds\\project.nsi"/>
   <sh:exec file="echo" args="Predist complete"/>
 </step>
</build>

Comments:

'Checkout'. This is straightforward and simply pulls the latest source into the build directory.

'Build' Here I use MSBUILD to build my project, using a custom logger (see http://confluence.public.thoughtworks.org/display/CCNETCOMM/Improved+MSBuild+Integration) and a .xsl file to make the output from the logger pretty (This is based on the msbuild2ccnet.xsl file mentioned on the link)

'Document' I plan to use doxygen to auto generate documentation from my source code here

'Smoke Test' Using a tool called qmtest (here-http://www.codesourcery.com/qmtest) I have created a database of tests to run. The results are fed back into bitten. The tests themselves are Auto It? (http://www.autoitscript.com/autoit3/) scripts.

'Package' Finally, if all the above succeeds, I use NSIS (http:// nsis.sourceforge.net/Main_Page) to create an install package that can be deployed on the target system.