The Perl framework for performing continuous, unattended, automated software builds
An increasingly important part of building and deploying software is the creation of packages in formats such as RPM, Debian or simple ZIP / Tar+GZip. Rather than explain how to create packages in these formats, this page outlines some of the issues specific to integrating with the autobuild framework.
Since the autobuilds run as an unprivileged user (builder
) it is neccessary to create and configure a local RPM build root. The example autobuild configuration file expects the RPM build root to be in the directory /var/builder/packages/rpm
. To create this, login as the user 'builder' and run
cd /var/builder mkdir packages mkdir packages/rpm mkdir packages/rpm/{RPMS,SRPMS,SPECS,SOURCES,BUILD} mkdir packages/rpm/RPMS/{i386,i486,i586,i686,sparc,noarch}
To instruct RPM to use this build root is it neccessary to create a .rpmmacros
file containing:
%_topdir /var/builder/packages/rpm
The Debian packaging tools don't need a central build root to operate with - instead they create files in a subdir of the package being built. The autobuild package detection does, however, expect the resulting binary packages to be placed in a central directory - by convention /var/builder/packages/debian
. This is accomplished by specifying the DESTDIR
variable when running the main build command:
fakeroot debian/rules binary DESTDIR=/var/builder/packages/debian
As with Debian packaging, there is no need for a centralized build root. It is merely neccessary to put the resulting ZIP or Tar+GZip binary files in a central distribution directory - by convention /var/builder/packages/zip
or /var/builder/packages/tgz
.