Wheeljack is a build system.
Wheeljack is an automated build system. It’s main focus is simplicity. Especially regarding work needed to setup the system or a new project. To satisfy this requirement it handles configuration through a web interface. This means that setting up a new project should be a matter of seconds.
Supported version control systems
Currently Wheeljack supports Bazaar and Subversion only. This is not a hard requirement for the software. Support for other version control systems can be added.
Wheeljack can be installed use one of two methods. The first is to setup everything yourself. The other is to use the provided installation template. People unfamiliar with Django are probably best off with an installation using the template. Read the next section on how to use this template. The rest of this section assumes a certain familiarity with Django.
To use Wheeljack you can create a Django project. Wheeljack ships with a pre-configured project you can use to import or copy from. The application itself is a normal Django app. The already setup project can be found under the src/wheeljack/project directory.
You can install the code by running python2.5 setup.py. This will also create a script called wheeljack. That script is the build slave.
The build slave needs to be executed periodically. You could set it up to run uninterrupted or from a cron job. Please look at the options it supports by executing:
$ wheeljack --help
Installing Wheeljack using the template
To easiest way to get started is to follow along with the instructions in this guide.
Download the Wheeljack installation template. After extracting the archive you need to edit a few files.
Open a terminal and execute the following line from within the directory that contains buildout.cfg:
$ python2.5 bootstrap.py
This will create a new script which will start with the installation. The installation can be ran as a normal system user and will not try to install anything outside of it’s current directory.
Within the directory called autobot there is a file named settings.py. Open this file and change the settings for EMAIL_HOST, DEFAULT_FROM_EMAIL, ADMINS, TIME_ZONE, LANGUAGE_CODE, BUILDER_USER and BUILDER_PASSWORD. The last two items should be set to the user you will create in the next section.
Create an initial database which will store the project info. This will ask you to create a new admin user. Answer yes to this.
$ ./bin/django syncdb
Now you are ready to start Wheeljack. This example configuration uses Supervisord to manage it’s processes. Run the following command to start both a builder and the web server.
$ ./bin/supervisord -c etc/supervisord.conf
The webserver is automatically started at port 8000. This can be changed from the etc/supervisord.conf file.
Now you can visit the Wheeljack-interface. If everything works O.K. there is only one thing left to do. Please reopen settings.py. Remove or comment the line that says DEBUG = True.
0.4 - February 14 2009
- A builder is started directly by forcing a build of a project. This mean you don’t have to wait until a scheduled build takes place.
- Made it possible to specify the configuration as an alternative to entering user name and password for the wheeljack command.
- Fixed a problem where a forced build of a wrongly configured repository would crash the builder.
- A notification is send when a build starts working again (after at least one failed build).
- Added a migration system (South) for easier upgrading between versions.
0.3 - January 04 2009
- The builder no longer crashes when the server is not available.
- Switched to Paster for the template based deployment. This is a much better server than the default Django development server for production use.
- Fixed an error that caused the builder to crash when terminating a hung build.
- The build info for a project is now updated during a build. This means that you can actually watch the build in progress.
0.2 - January 01 2009
- Moved the base template to the project. This makes it easier to override it for specific installations.
- Added support for Subversion.
- Changes to the project’s settings will trigger a build regardless of any updates to the version control system.
- Made it possible to force a build from the project detail screen.
0.1 - First release
- Initial release of Wheeljack.