This is a framework for higher-level configuration of BuildBot masters, used by BoostPro Computing for its internal testing and by the Ryppl project.
The goal is to efficiently and expressively manage pools of slaves whose resources can be distributed across a variety of build and test jobs.
- Declarative configuration
- Avoidance of boilerplate
- Multiple project support
A project aggregates:
- property requirements
- source repositories
- build procedures
- status reporting
A platform is a Python tuple describing a combination of properties such as os, compiler toolchain, architecture, python-version, emacs-version, etc.
A slave has properties that describe its platform capabilities. A
slave property whose value is a list describes a list of possible
values for that property. For example, a slave having Python 2.6 and
Python 2.7 installed might have a python
property with value
[ '2.6', '2.7']
.
Every project is built on every available platform that satisfies the project's requirements.
To run the project's tests, invoke nosetests
from the top-level
directory (in addition to BuildBot, you'll need nose).
This framework is still under heavy development. It evolves in major ways as we discover the need for new capabilities.
Basically, it's short. Better names welcomed.