[ILUG] Build Systems
P at draigBrady.com
P at draigBrady.com
Thu Sep 8 16:01:58 IST 2005
Darragh Bailey wrote:
> In my current roles as managing an automated nightly distro build system, I find
> myself at the stage of needing to redesign and rebuild the system from scratch.
>
> I inherited a series of scripts that perform the task or rebuilding packages
> (rpms) and bringing all the build parts together from a specialised distro.
> Problem is that instead of each component having a a seperate script that
> manages the building of that component, everything is in one script. That's not
> all, part of the system uses makefiles to start the build of various packages
> but they all need to be rewritten since they run everything instead of only when
> there has been a modification to the source files involved in creating a
> package.
Do you mean all packages are rebuilt for each build?
I've done a distro here using much the same mechanism
as you describe above except it works from upstream
source packages and our diffs. Also it only builds what's
necessary. The logic quite simple and is essentially like:
build_package1() {
./configure && make
}
build_package2() {
make #whatever
}
echo "
package1
package2
" |
while read package; do
if [ $PACKAGES_DIR/$packagefile -nt $packagedir ] ||
[ $PACKAGES_DIR/$packagedir.diff -nt $packagedir ]; then
echo "building $package..."
build_`echo $package | tr +- __` $packagedir </dev/null
else
echo "$package already built"
fi
done
> So what I would be looking for in a build system is:
> central access point
> capable of being given a target machine and basic settings to start a build
> reporting of success/failure/warnings/errors to a web interface where developers
> can check out the status of the builds.
>
> Also nice would be capabilities already built in to
> check out sources from cvs
> determine if build is required at all (i.e. was there any changes since the last
> checkout)
>
>
> I can write everything from scratch myself, but if anyone else is familiar with
> automated build systems and know of a few, I'd appreciate your views, or links
> to build systems
I think your talking about continuous integration here,
which is a buzz word comming mostly from the java community.
There is a nice comparison matrix here:
http://docs.codehaus.org/display/DAMAGECONTROL/Continuous+Integration+Server+Feature+Matrix
We use cruisecontrol here in corvil, but that is only for the java
side of things as essentially the whole java project is rebuilt
on each checkin. For the linux distribution build script I
outlined above, I've a cron job that calls that every night.
> Already looking at
> Buildbot http://buildbot.sourceforge.net
yes I thought that was interesting also.
There is an example of that at:
http://mono.ximian.com:8008/
Pádraig.
More information about the ILUG
mailing list