[Buildbot-devel] trying to use buildbot for freeware scientific data package...

Brian Warner warner at lothar.com
Wed Jan 7 20:25:02 UTC 2004


> Howdy all!

Welcome!

> I am having a very hard time coming up with a master.cfg file. I have
> the sample file, which is for the Twisted package, but it is hard to
> see exactly how to customize it. Also it doesn't look complete. For
> example:

Ah right. I split out private.py to make it possible to distribute the exact
master.cfg that we use on the Twisted buildbot while not making it to easy
for the kiddies to disrupt it. I'll add a note to twisted_master.cfg that
describes what exactly is in that file. In the Twisted buildmaster
installation, there is a directory called 'support-master' which is added to
PYTHONPATH, and that it where private.py lives. It simply defines some values
that I didn't want to check into the CVS tree, and looks vaguely like:

 bot_passwords = {
   "bot1": "passwd1",
   "bot2": "passwd2",
   # etc
 }
 freshcvs_port = 1234
 freshcvs_perspective = "foo"
 freshcvs_password = "foo"
 debugPassword = "foo"

docs/examples/glib_master.cfg is also valid and might be a bit simpler.

> c['bots'] = []
> for bot in private.bot_passwords.keys():
>     c['bots'].append((bot, private.bot_passwords[bot]))


BuildmasterConfig['bots'] is just a list of tuples. Each tuple has two
elements: the name of the bot, and the bot's password. These are the same
name/passwd your buildslave admins will use to set up their slaves. The bot
name is also used in ['builders'], where you use it to specify which bot
should house the Builder.

 buildmaster
    bot1
      builderA   (using subdir "A")
      builderB   (etc)
    bot2
      builderC
      builderD

c['bots'] = [("bot1", "passwd1"),
             ("bot2", "passwd2")]

c['builders'].append( ("builderA", "bot1", "A", factoryA) )
c['builders'].append( ("builderB", "bot1", "B", factoryB) )
c['builders'].append( ("builderC", "bot2", "C", factoryC) )
c['builders'].append( ("builderD", "bot2", "D", factoryD) )

Then factoryA is an instance of a BuildFactory, either one of the
pre-provided ones like BasicBuildFactory (suitable for typical GNU autoconf
-style build processes) or a subclass you've written.


Hope that gets you started.. I'll also try to put some energy into improving
the config-file docs this week. I'll also see about doing a new release soon:
current CVS has a Bonsai mail-parser contributed by Stephen Davis and a fix
to the FreshCVS mail-parser to keep it from choking on the new kind of
directory-addition messages that FreshCVS emits (I'm not sure when their
syntax changed, but the new one causes problems with buildbot-0.4.1).

Feel free to post your .cfg file here if it doesn't seem to be working for
you. Also remember to make sure that any subclasses you define (specifically
any modules you import from master.cfg) are reachable on the buildmaster's
PYTHONPATH, and watch the twistd.log when you start the buildmaster to look
for problems encountered as the config file is read.

cheers,
 -Brian




More information about the devel mailing list