= 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/] * The open-source [http://icu-project.org International Components for Unicode (ICU)] project uses bitten in the [http://bugs.icu-project.org/trac ICU Bug System] === Comparison of Bitten with other Continuous Integration Systems === please see [http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix CI Comparison] I don't see Bitten anywhere in the comparisons - everything except Bitten!! From the [http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 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 [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 a 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:~$ }}} === 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: [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 }}}