[Buildbot-devel] On dependent vs. triggerable schedulers

Dan Kegel dank at kegel.com
Sun Jan 20 19:36:19 UTC 2013

I'm looking at adding dependencies to my buildbot configuration.
Each builder produces a package that gets uploaded to e.g. an
apt server, and consumes other packages that have been uploaded
to that same server.
Packages depend on other packages; mapping that to buildbot,
I'd like to have builders depend on other builders (i.e. the
builders that produced the packages in question),
and only get run when all their dependencies are green
and either their own source changes, or one of their
dependencies just finished uploading.

basic.Dependent doesn't suffice, since it can only depend on one scheduler
(I don't mind that it depends on schedulers rather than builders,
and I'm fine with having no SourceStamp, since the packages
all have different source repos.).

Triggerable doesn't suffice, since it doesn't check to make sure
that all dependencies are green before firing.  (And SourceStamps
from foreign git repos don't make much sense in my context, I
wonder if they would get filtered out and not trigger the build.)
I could make my buildsteps just fail in that case... but that would look ugly.

I could try extending basic.Dependent to take a list
of upstreams, and only fire when they're all green.
Or I could try extending Triggerable to have an upstreams
list, and ignore any triggers that happen when any upstream
is red.  (The upstreams list would be somewhat redundant with the
schedulerNames list of each Trigger step.  Bleah.)

Has anyone else tried to satisfy this kind of dependency with Buildbot before?
- Dan

More information about the devel mailing list