[Buildbot-devel] My workaround to multi-repository builds
Tom Prince
tom.prince at ualberta.net
Sun Sep 11 02:15:45 UTC 2011
On Fri, 09 Sep 2011 08:49:07 -0400, Ben Hearsum <bhearsum at mozilla.com> wrote:
> Hi all,
>
> I've been setting up a Buildbot for Flask (http://flask.pocoo.org/) and
> its supported extensions. For this Buildbot, we're polling both the
> Flask repository, and each extension's repository. When changes are made
> to the Flask repository, Builds are run to run Flask's own unit tests,
> and also to run each of the extension's unit tests against the new Flask
> code. When changes are made to at extension's repository, its tests are
> run against multiple versions of Flask.
>
> Because we're polling multiple, unrelated repositories (in the VCS
> sense), and triggering the same builders in multiple different ways, I
> hit some issues with the Source steps. Specifically: when an extension
> test builder was triggered from a commit to the Flask repository, the
> Source step that checked out the extension's code tried to update to a
> revision only present in the Flask repository.
>
> After some head-desking, I found a pretty simple solution: Ignore the
> SourceStamp completely when its repository doesn't match the one set on
> the Source step. Concretely, this looks like:
I am guessing you are you Trigger to start builds of Flask from the
extensions and vice-versa. You can pass alwaysUseLatest=True to start
the new build without a source stamp, or sourceStamp={ ... dict ...} to
build a specific version.
Also, the old source steps accept an alwaysUseLatest option to ignore
the revision from the SourceStamp. although it appears the new steps
don't yet support it.
I know for my own personal projects, there are often multiple
repositories that I want run builds against. I have one buildbot with
currently three projects with 3, 5+, and 1 repo respectively.
Tom
More information about the devel
mailing list