[Scummvm-devel] ScummVM goes buildbot
a.heider at gmail.com
Mon Mar 16 20:32:21 CET 2009
looks like you guys already like it, thanks for the replies and the
kind words ;)
First, let me describe the current setup a little further:
There is only one SVN checkout on the server. Upon a commit that tree
is updated (thats the fetch-trunk and fetch-branch column on the
waterfall page). If that step is done, all related builders start
working. For that they all have their own build directory where they
Now, there's 2 kinds of builds. Both use the same build dir:
1) Nightly builds. These call the configure script from the checkout
dir every night. That in return means that every single file is going
to be recompiled (a feature of our build system, as Max mentioned),
object files and binaries from earlier compiles are not used. If that
succeeds we have a full and clean rebuild, and the idea is that the
resulting binaries are our snapshots, available publicly on a web
2) Then there're incremental builds. After each commit these are
issued. Prior compile runs (starting at the last nightly build) are
beeing reused, so only changes to the tree are beeing compiled.
Two of the goals are to minimize the network and HDD usage.
About the configure topic:
I'm not saying that its impossible to add support for ports with
custom Makefiles. Of course it is, but the configure system takes care
of a few things which unify the build behaviour across ports. For
example, I can force a full rebuild with a configure run. And if a
change to that script is commited, our build system takes care of it
and rebuilds everything too. The current setup is built around that.
With Makefiles in the backend/ folder we basically duplicate a subset
of that behaviour. It's just that I think adding non-configure-ports
is error-prone for this buildbot setup.
Before we add vpath support and the like to those Makefiles, we can
also use this opportunity by doing the opposite and add configure
support for those ports :P That not only simplifies the buildbot
setup, users gain from it too. Yes, that means work, and as mentioned
before, it also affects me with the Wii port, so this is only a
If there are technical problems for some ports, thats of course
another story. But I currently can't think of anything that's not
solvable in the configure script and extensions to the build system if
On the other hand, if we go this way, that means that either those
configure additions have to be backported to the branch or we only
build these ports for trunk.
I would like to try this, I'm not against alternative ways to set this
up. And of course this topic is open for discussion for the whole
team, I don't want to force anything on you guys.
More information about the Scummvm-devel