Skip to content

Bitten is a Python-based framework for collecting various software metrics via continuous integration. It builds on Trac to provide an integrated web-based user interface. (This is an unofficial repo)

License

blaxter/Bitten

Repository files navigation

About Bitten
============

Bitten is a simple distributed continuous integration system that not only
coordinates builds across multiple machines, but also collects software
metrics generated by builds, to enable feedback and reporting about
the progress of a software project.

The Bitten software consists of three separate parts:
 * The build slave, which executes builds on behalf of a local or remote
   build master
 * The build master, which orchestrates builds for a project across all
   connected slaves, and stores the build status and results to the
   database
 * The web interface, which is implemented as an add-on to Trac
   (http://trac.edgewall.com/) and provides a build management interface
   as well as presentation of build results.

Both the build master and the web interface depend on Trac 0.10, and need
to be installed on the same machine, together with the Subversion
repository. The build slave only requires Python (>= 2.3), setuptools
(>= 0.6a2),  as well as any tools required by the build process itself. A
build slave may be run on any machine that can connect to the server
running the Bitten build master.


Installation
------------

Bitten is written in Python, so make sure that you have Python installed.
You'll need Python 2.3 or later. Also, make sure that setuptools
(http://peak.telecommunity.com/DevCenter/setuptools), version 0.6a2 or later,
is installed.

If that's taken care of, you just need to download and unpack the Bitten
distribution, and execute the command:

  $ python setup.py install

from the top of the directory where you unpacked (or checked out) the Bitten
code. Note that you may need administrator/root privileges for this step, as
it will by default attempt to install Bitten to the Python site-packages
directory on your system.

It's also a good idea to run the unit tests at this point, to make sure that
the code works as expected on your platform:

  $ python setup.py test


What's left to do now depends on whether you want to use the build master and
web interface, or just the build slave. In the latter case, you're already
done. You might need to install software that the build of your project
requires, but the Bitten build slave itself doesn't require anything extra.

For the build master and web interface, you'll need to install Trac 0.10 or
later. Please refer to the Trac documentation for information on how it is
installed.


Build Master Configuration
--------------------------

Once both Bitten and Trac are installed and working, you'll have to introduce
Bitten to your Trac project environment. If you don't have a  Trac project
set up yet, you'll need to do so in order to use Bitten.

If you already have a Trac project environment, the Bitten plugin needs to be
explicitly enabled in the Trac configuration. This is done by adding it to the
[components] section in /path/to/projenv/conf/trac.ini:

  [components]
  bitten.* = enabled

The Trac web interface should now inform you with an error message that the
environment needs to be upgraded. To do this, run:

  $ trac-admin /path/to/projenv upgrade

This will create the database tables and directories that Bitten requires.
You probably also want to grant permissions to someone (such as yourself)
to manage build configurations, and allow anonymous users to view the
status and results of builds:

  $ trac-admin /path/to/projenv permission add anonymous BUILD_EXEC
  $ trac-admin /path/to/projenv permission add anonymous BUILD_VIEW
  $ trac-admin /path/to/projenv permission add [yourname] BUILD_ADMIN

You should now see an additional tab labeled "Build Status" in the Trac
navigation bar. This link will take you to the list of build configurations,
which at this point is of course empty. If you've set up permissions
correctly as described previously, you should see a button for adding new
build configurations. Click that button and fill out the form. Also, add
at least one target platform after saving the configuration. Last but not
least, you'll have to "activate" the build configuration.


Running the Build Master
------------------------

At this point, you're ready to start the Bitten build master. The
installation of Bitten should have put a `bitten-master` executable on your
path. If the script is not on your path, look for it in the `bin` or
`scripts` subdirectory of your Python installation.

To find out about the options and arguments of the master, execute it with
the `--help` option as follows:

  $ bitten-master --help

Most commonly, you'll want to specify the log level and log file, as well as
the path to the Trac environment:

  $ bitten-master --verbose --log=/var/log/bittend /var/trac/myproject


Running the Build Slave
-----------------------

The build slave can be run on any machine that can connect to the machine
on which the build master is running. The installation of Bitten should have put
a `bitten-slave` executable on your path. If the script is not on your path,
look for it in the `bin` or `scripts` subdirectory of your Python installation.

To get a list of options for the build slave, execute it with the `--help`
option:

  $ bitten-slave --help

To run the build slave against a Bitten-enabled Trac site installed at 
http://myproject.example.org/trac, you'd run:

  $ bitten-slave http://myproject.example.org/trac/builds


More Information
----------------

For further documentation, please see the Bitten website at:

  <http://bitten.cmlenz.net/>

About

Bitten is a Python-based framework for collecting various software metrics via continuous integration. It builds on Trac to provide an integrated web-based user interface. (This is an unofficial repo)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published