[Buildbot-devel] multiple schedulers/changesources

Charles Lepple clepple at gmail.com
Thu Oct 9 11:53:37 UTC 2008

On Thu, Oct 9, 2008 at 3:07 AM, Wolfgang Rosenauer
<wolfgang at rosenauer.org> wrote:
> Charles Lepple schrieb:
>> On Wed, Oct 1, 2008 at 6:38 AM, Wolfgang Rosenauer
>> <wolfgang at rosenauer.org> wrote:
>>> Hi,
>>> I'm wondering if it's possible to have different projects in one
>>> buildbot instance like this:
>>> I get my changes notifications from svn using PBChangeSource but I have
>>> different projects in the config which have different baseURLs obviously.
>>> So I tried to define two AnyBranchSchedulers instead of one but that's
>>> not enough apparently.
>>> So I guess incoming changes always trigger all schedulers if they
>>> contain the defined branch names which are defined to be monitored by
>>> the AnyBranchScheduler?
>>> Any other solution besides having another master instance?
>> Definitely - use the fileIsImportant argument to the scheduler, and
>> make your fileIsImportant function filter based on the "branch" (SVN
>> path).
>> [...]
>> change.branch can be None if the default branch is being built;
>> otherwise, I believe it is a string.
> I've played around with that but I still haven't got it working :-(
> The branch is either the real branch (if $REPOS in the notifier is the
> base) or it seems to be always "trunk" if it's higher level change in
> the tree structure. In the latter case I can filter on change.files and
> can see some part of the svn path but in the first case I can't it seems.
> So I'm filtering on change.files now but have to live with the fact that
> one project can't use the AnyBranchScheduler because it only sees
> "trunk" changes in every case.

Oh, I think I see what you're getting at. Here's a more concrete
example; let me know if this doesn't match what you're talking about:


If you only want to build branch1 from projectA with the builder for
projectA, you could redefine the path split function so that the
"branch" from BuildBot's point of view is really "projectA/branch1".

The main difference, visible to the other developers, is that they
need to include the project name in the path when they force a build.
If that is a problem, then you probably would want to set up another
master instance anyway.

- Charles Lepple

More information about the devel mailing list