[Buildbot-devel] Having one builder pause other builders on the same buildmaster

Matisse Enzer menzer at apple.com
Tue Sep 27 00:16:17 UTC 2011


We have a bunch of git repos for a collection of Ruby gems that all send change messages to a single build master. We have arrange a cascade of triggered builds with a dependency graph roughly like this:


digraph G {
	backup_service -> file_system;
	compiler -> setup;
	file_system -> setup;
	linker -> compiler;
}

So the "backup_service" gem depends upon the "file_system" gem, and the "file_system" gem depends upon the "setup" gem, and so on.

A success build of "setup" triggers builds of all the components that depend on it, in this example that would be "file_system" and "compiler"

The trouble is, a  build of "setup" can take 20 minutes, and we would like to hold all pending changes on the other components until that build finishes. That way if a new version of "compiler" needs the new version of "setup" buildbot will not build "compiler" until "setup" is done and available to the build slave(s)

Is this reasonable to do?

A more general question is how to best handle projects such as like which (like Rails) have many interdependent components hosted in different repositories. We want a cascade of builds and tests when something changes, but we do not want false failures as upgrades ripple through the code base.

-M




More information about the devel mailing list