Out of Date : The svnbuildstat service described here is currently unavailable. The following is for reference/historical interest only. |
Please read svnbuildstat instead to get information about the system.
Here: http://svnbuildstat.debian.net/packages/list/5
Abstract
It would be really helpful if there would be a tool that does automatic building of Debian packages that are maintained in Subversion. This would be especially helpful for team maintainance, but it should be usable for individual maintainance.
This project has arised from the need to have some automated checks done on the Debian Games Team's packages which are team maintained in a Subversion repository.
Features
- can autobuild packages directly from SVN (if a few preconditions are true: access to the SVN repo; access to orig tarballs, if needed)
- generates per maintainer and per team web pages with the packages of each individual is maintainer and/or co-maintainer
- automatic lintian checks
- visually represent with green/yellow/red background build success/ongoing/failed status on the status pages (there is one for each developer and one for the whole team)
- directly link to the BTS bugs of every package, so the status page becomes the central point of coordination for the developer.
- supplemental checks can be added (e.g.: gnome policies)
- custom builder commands can be used, but svn-buildpackage+pbuilder is recommmended; no other builders were tested, but it should be possible to modify the tool to make it possible
- supports building a collection packages located in the same directory or packages gathered in the same directory via svn:externals (this is useful if one uses layout 1 of svn-buildpackage but wants to be able to autobuild and check all trunks)
Source
The source is available in the Debian Games Team's Subversion repository. It can be broswed or checked out
svn co svn://svn.debian.org/svn/pkg-games/people/goneri/update-pkg-games/
Source structure
The autobuilder is composed of a some scripts and some configuration files.
Configuration files
- all present in etc/
- config - configures the autobuilder itself
- this is NOT a real shell file, it just looks like one
- contains configuration variables like the Subversion repository location, the builder command, the force build general override, etc.
- pbuilderrc - configuration file for the default builder command; simillar configuration files for other builders should be added here and the config file should be changed accordingly
- config - configures the autobuilder itself
scripts
- update_pkg.sh - builds from the SVN the package given as parameter; lintian checks are done automatically, too; the build will be done only if needed, or if forced (there are a few mechanisms to force rebuilds)
- refresh.pl - generates the status pages (html pages)
- update-all.sh - a script that runs continuously and updates targets and the status pages (wait periods are inserted in order not to keep the machine busy needlessly)
Demo
The autobuilder has been working for the Debian Games Team since its introduction. The status pages were available at:
http://svnbuildstat.debian.net/packages/list/5
History
- October 2006: An initial implementation was done by Gonéri Le Bouder for the Debian Games Team. It had many hard-coded paths and it was strongly tight with the Debian Games Team's development process.
- March 2007: Eddy Petrişor has done some work to remove the hardcoded paths, make the thing more configurable, added support for svn:externals, lots of debranding, fixed some assumptions that worked out of luck
- April 2007: Goneri started to work on svnbuildstat, a complete rewrite which should use a database for tracking information - this code is still under development
1st of May 2007: A first public version of the build results of the new Autobuilder are available at http://nana.rulezlan.org/svnbuildstat/ .