[Buildbot-devel] adding build steps on the fly
amax at redsymbol.net
Thu Jul 31 18:17:34 UTC 2008
On Thursday 31 July 2008 02:18:04 am Brian Gerkey wrote:
> Is it possible to add a build step on the fly, during a build?
I faced this problem last year with 0.7.6. As far as I could tell, the set of
build steps for a factory instance is in effect immutable, unfortunately. I
was able to solved the problem anyway though. The solution I came up with
was to generate all possible factories at start up time. (In effect, all
possible sets of build steps). Then I would dynamically select the
appropriate factory depending on what kind of build was being run.
I accomplished this dynamism by subclassing
buildbot.process.factory.BuildFactory, and directing my set up to use this
subclass. I overrode BuildFactory.newBuild to set self.steps appropriately
before invoking the parent method. Also, it's important to set the class
attribute useProgress to False in your BuildFactory subclass - BB's progress
estimation algorithm assumes the sequence of steps is very static, with fatal
reactions if it changes. (At least in 0.7.6).
Perhaps someone knows of a better way to handle this. It's a lot of work, so
I'd recommend another approach if you can find one. In your situation, it
may be a possible to squeeze the set of new steps in a single build step,
containing a script that checks whether it needs to run, and prematurely
exits if not.
Another approach may be to have the step that processes a list of changed
files set a custom build property depending on the result, and having these
later steps only execute if this property is set to true (etc.)
> In particular, when a build is triggered, I want to process the list
> of changed files and potentially add new steps as a result of
> I've tried a variety of things, such as writing my own class that
> inherits from a subclass of BuildStep, then mucking with
> self.build.steps in there, but so far to no avail.
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge Build the coolest Linux based applications with Moblin SDK & win
> great prizes Grand prize is a trip for two to an Open Source event anywhere
> in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
More information about the devel