[Buildbot-devel] 'interlock' on bot?

Stephen Davis sdavis at stanfordalumni.org
Thu Dec 11 18:05:29 UTC 2003

On Dec 11, 2003, at 4:13 AM, Jeroen Janssen wrote:

> Is it possible to somehow specify that a bot can only perform one 
> build/test at a time?
> At the moment it is possible to trigger multiple build/test on the 
> same bot using the webinterface.
> However, only one 'instance' of the software can run at the same time, 
> I would like to postpone a next build one the same bot until the 
> previous one is done.
> Any idea how I can do this? (the current interlock seems written for 
> usage with a Source / ChangeSet?)

The interlock can definitely be used for this purpose.  Using the 0.4.1 
release syntax for master.cfg you would do this:

BuildmasterConfig['builders'] = []

f1 = QuickBuildFactory(repository, cvsmodule,
                        #configure="./configure --disable-shared",
                        #configureEnv={'CFLAGS': '-O0'},
BuildmasterConfig['builders'].append(("glib-quick", "bot1", 
"glib-quick", f1))

f2 = BasicBuildFactory(repository, cvsmodule,
                        configure="./configure --disable-shared",
                        configureEnv={'CFLAGS': '-O0'},
BuildmasterConfig['builders'].append(("glib-full", "bot1", "glib-full", 

#  interlocks: a list of (name, [feeders], [watchers]) tuples:
#     name: the name of the interlock, must be unique
#     feeders: the names of the Builders which feed this interlock
#     watchers: the names of the Builders which watch this interlock

BuildmasterConfig['interlocks'] = [ ("glib-lock", ["glib-quick"], 
["glib-full"]) ]

"glib-full" will build after "glib-quick".  Since the  the "glib-quick" 
and "glib-full" builds are assigned to the same build bot, that bot 
will only run one of them at a time.  In addition, "glib-full" will 
only build if "glib-quick" completes successfully so they are really 


More information about the devel mailing list