= Frequently Asked Questions =
Here you can find answers to frequently asked questions about Bitten.
[[PageOutline(2-3, Overview, inline)]]
== General ==
=== What is Bitten? ===
Bitten is a [http://trac.edgewall.org/ 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 [wiki:WhitePaper white paper] for the original motivation behind the project.
[[Image(http://www.edgewall.org/gfx/opensource-75x65.png, width=75, height=65, align=right)]]
=== What license governs the use of Bitten? ===
Bitten is released under the [wiki:License revised BSD license], which is a liberal open source license that has been [http://opensource.org/licenses/bsd-license.php approved] by the [http://opensource.org/ Open Source Initiative (OSI)].
=== Can I see an example? ===
You can see Bitten live in action at the [http://bitten.edgewall.org/build/trunk Bitten build page].
=== How is Bitten used in other organizations? ===
An detailed overview of using bitten for the Boost project, an open-source c++ library, can be seen at [https://www.boostpro.com/trac/projects/boost/]
=== Comparison of Bitten with other Continuous Integration Systems ===
please see [http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix CI Comparison]
== Installation ==
=== Bitten Slave ===
To install the bitten slave only see [wiki:EasyDownloadAndInstall 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 more limited and domain-specific tool than ant.
=== What commands are available in the bitten recipe? ===
See [http://bitten.edgewall.org/wiki/Documentation/commands.html Bitten Recipe Commands.]
=== Can I see some sample bitten recipes? ===
See this sample for [wiki:BittenSampleRecipes Microsoft Visual Studio projects using MSBUILD] or this one for [wiki:BittenSampleJavaRecipe Java projects using JUnit and Ant]. See also this recipe to [wiki:RecipeFtpDownload download and untar a file from an ftp server]. See also this recipe to [wiki:BittenSampleMonotoneRecipe 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:
{{{
}}}
=== 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 -p
}}}
=== How do I schedule the bitten slave to run at a certain time of the day? ===
First use your operating system's task scheduler ([http://www.ss64.com/nt/schtasks.html schtasks] for Windows and [http://www.adminschoice.com/docs/crontab.htm 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 [wiki:BittenSlaveOptions 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 [wiki:BittenRunSlaveLocally 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:~$
}}}
== Bitten Master ==
=== How do I create my first build on Admin -> Builds -> Configurations ? ===
See here: [wiki:newBuildConfiguration creating a new build configuration].
=== My slave connects to the build master, why doesn't it start a build? ===
See [wiki:BittenBuildWontStart 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 [wiki:BittenSampleJavaRecipe build recipes for Java projects using JUnit and Ant]. To create your own custom charts, see [wiki:AddingCharts 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: \
i686\
Linux
}}}
* Windows XP
{{{
[DEBUG ] Sending slave configuration: \
\
Windows
}}}