All project content is available for reading, but you need to be a member of the project for Subversion checkout of source code, or to create/modify any information.
Login if you are a member. Apply here to request membership (open to all).

Cookbook for Automated Builds

Below are examples of automated build recipes for use and inspiration.

All recipe examples contain the <build> and one or more <step> sections. The <build> section is really only needed to mark the XML namespaces needed for integration in your own recipe.

If you have comments or would like to contribute new examples, then please contact us.


  1. Java Ant
  2. MS Build
  3. MS Test
  4. PHP Unittest
  5. Python Unittest and Coverage
  6. Subversion Checkout

Java Ant

<build xmlns:java="http://bitten.edgewall.org/tools/java">
  <step id="compile">
    <java:ant file="build.xml" target="compile-all" />
  <step id="create exe" onerror="continue">
    <java:ant file="build.xml" target="create-exe"/>
  <step id="run junit"  onerror="continue">
    <java:ant file="build.xml" target="test-all"/>
    <java:junit file="test-results/TEST-*.xml" srcdir="src" />

MS Build

Call msbuild with solution or project file, and with arguments as supported by the tool.

<build xmlns:sh="http://bitten.edgewall.org/tools/sh">
  <step id="build" description="Building using msbuild in Debug mode">
    <sh:exec file="msbuild.exe"
      args="/property:Config=Debug /verbosity:minimal EPiCode.PageTypeUtil.csproj"/>

MS Test

<build xmlns:sh="http://bitten.edgewall.org/tools/sh">
  <step id="build" description="Building using msbuild in Debug mode">
    <sh:exec executable="mstest" args="/testmetadata:Project.vsmdi "/>

Also, see http://bitten.edgewall.org/wiki/MsTestXslt for example of how to apply an <x:transform> command on the MS Test output, for structured test result reporting.

PHP Unittest

<build xmlns:php="http://bitten.edgewall.org/tools/php"
  <step id="Unit-Tests" description="Tests and Code-Coverage analysis">
    <sh:exec executable="phpunit"
        args="--coverage-clover coverage.xml --log-xml results.xml Foo/tests/AllTests.php" />
    <php:phpunit file="results.xml"/>
    <php:coverage file="coverage.xml"/>

Python Unittest and Coverage

<build xmlns:python="http://bitten.edgewall.org/tools/python">
  <step id="test" title="Unit tests"
       description="Run unit tests and record code coverage" onerror="ignore">
    <python:distutils command="unittest"/>
    <python:unittest file="build/test-results.xml"/>
    <python:trace summary="build/test-coverage.txt" 
       include="foo/*" exclude="*/tests/* foo/somescript.py"/>

Subversion Checkout

<build xmlns:svn="http://bitten.edgewall.org/tools/svn">
  <step id="checkout" title="Checkout the code from the repository">
    <svn:checkout url="https://www.coderesort.com/svn/projectname/"
        path="${path}" revision="${revision}"/>

After checkout, source will be available at working directory allowing you to access and build parts using relative paths.