Edgewall Software

Frequently Asked Questions

Here you can find answers to frequently asked questions about Bitten.

Overview

  1. General
    1. What is Bitten?
    2. What license governs the use of Bitten?
    3. Can I see an example?
    4. How is Bitten used in other organizations?
    5. Comparison of Bitten with other Continuous Integration Systems
    6. How do you post Bitten events to the timeline?
    7. Does Bitten work with source control backends other than Subversion?
  2. Installation
    1. Bitten Slave
    2. Bitten Master (Trac plugin)
  3. Bitten Recipe
    1. What is the bitten recipe file?
    2. What commands are available in the bitten recipe?
    3. Can I see some sample bitten recipes?
    4. Can slaves know which platform they're building?
    5. What variables are available in recipe files?
  4. Bitten Slave
    1. How do I point the bitten slave to my build configuration?
    2. How do I schedule the bitten slave to run at a certain time of the day?
    3. What options does the Bitten slave support?
    4. How does the Bitten slave authenticate on my Trac-platform with …
    5. How can I quickly run the slave without a repository checkout?
    6. How to I test my bitten slave connection to the server?
    7. When I run the slave, I get an "Internal server error" with no other …
  5. Bitten Master
    1. How do I create my first build on Admin -> Builds -> Configurations ?
    2. My slave connects to the build master, why doesn't it start a build?
    3. How do I add one of those cool over-time charts to my build page?
    4. How do I add "target platforms" ?

General

What is Bitten?

Bitten is a  Trac extension for continuous integration. It uses a distributed build model, where one or more "slaves" run the actual tests, and a "master" gathers the results and displays them nicely on a web page. See the white paper for the original motivation behind the project.

http://www.edgewall.org/gfx/opensource-75x65.png

What license governs the use of Bitten?

Bitten is released under the revised BSD license, which is a liberal open source license that has been  approved by the  Open Source Initiative (OSI).

Can I see an example?

You can see Bitten live in action at the Bitten build page.

How is Bitten used in other organizations?

Comparison of Bitten with other Continuous Integration Systems

please see  CI Comparison

I don't see Bitten anywhere in the comparisons - everything except Bitten!!

From the  CI Comparison page:

" ... I would also love to see Bitten in this matrix. ..." - Alexandre Franke, Jan 27, 2009 07:41

How do you post Bitten events to the timeline?

Bitten events are automatically posted to the Trac timeline.

Does Bitten work with source control backends other than Subversion?

Currently it is only known to work with SVN.

Installation

Bitten Slave

To install the bitten slave only see Bitten Slave Download and Install.

Bitten Master (Trac plugin)

To install the bitten master (on your Trac server) see here: http://bitten.edgewall.org/wiki/Documentation/install.html.

Bitten Recipe

What is the bitten recipe file?

The bitten recipe file is a XML file that executed by bitten-slave to download, compile, run, and test your code. This code building process can be automated into bitten XML recipe. The XML recipe will need to be interpreted by bitten-slave command. It is similar in concept to ant, although it is a more limited and domain-specific tool than ant.

What commands are available in the bitten recipe?

See Bitten Recipe Commands.

Can I see some sample bitten recipes?

See this sample for Microsoft Visual Studio projects using MSBUILD or this one for Java projects using JUnit and Ant. See also this recipe to download and untar a file from an ftp server. See also this recipe to build from a monotone repository.

Can slaves know which platform they're building?

If a slave can build both the gcc 4.1 and gcc 4.3 target platforms, it will need to know which one is to be built. The ${platform} variable, introduced in #376, may be used for this purpose, for example the recipe file would look like this:

<build xmlns:c="http://bitten.cmlenz.net/tools/c">
	<step id="compile">
		<c:make target="all" args="GCC_VERSION=${platform}"/>
	</step>
</build>

What variables are available in recipe files?

  • revision: the code revision being built
  • path: the working folder into which to check out and build code
  • platform: the target platform being built, as listed on the admin page

Bitten Slave

How do I point the bitten slave to my build configuration?

If your trac installation is hosted at trac.xxx.com, and you have a project called my-project in trac, the command line would look like:

bitten-slave https://trac.xxx.com/my-project/builds \
-u <username> -p <password>

How do I schedule the bitten slave to run at a certain time of the day?

First use your operating system's task scheduler ( schtasks for Windows and  cron for unix/OSX) to run the bitten slave at the desired times.

Then run the bitten nslave with the "--single" (-s for short) option so that each launch of the slave exits after a single build instead of continually polling for more builds.

What options does the Bitten slave support?

See Bitten Slave Options.

How does the Bitten slave authenticate on my Trac-platform with AccountManagerPlugin?

The /trac.cgi/builds-URL should be protected in the server configuration just like the /login-Location.

How can I quickly run the slave without a repository checkout?

See Running the Bitten slave locally

How to I test my bitten slave connection to the server?

me@ubuntu:~$ bitten-slave http://ubuntu.test.net/projects/hobbit/builds
[INFO    ] No pending builds
[INFO    ] Shutting down
me@ubuntu:~$

When I run the slave, I get an "Internal server error" with no other explanation. How can I fix this?

This issue may come up after upgrading your trac version. One solution can be found here:  http://www.exolete.com/bitten-problems-upgrading-trac-sqlite-postgresql

Bitten Master

How do I create my first build on Admin -> Builds -> Configurations ?

See here: creating a new build configuration.

My slave connects to the build master, why doesn't it start a build?

See Build Won't Start.

How do I add one of those cool over-time charts to my build page?

The charts are added automatically if your recipe creates junit reports and/or code-coverage reports. To see a sample recipe that will produce junit test results from Java see build recipes for Java projects using JUnit and Ant. To create your own custom charts, see Adding Custom Charts to Bitten.

How do I add "target platforms" ?

You can see slave configuration from using a command like "bitten-slave -v  http://192.168.1.10/trac/builds". This will give output like the following:

  • Fedora 9 OS sample
    [DEBUG   ] Sending slave configuration: \
    <slave name="ibm"><platform processor="i686">i686</platform>\
    <os version="2.6.25-14.fc9.i686" family="posix">Linux</os></slave>
    
    
  • Windows XP
     [DEBUG   ] Sending slave configuration: \
     <slave name="inspiron531"><platform processor=""/>\
     <os version="XP" family="nt">Windows</os></slave>
    

Attachments