[Buildbot-devel] one slave... for multiple masters?

Ben Hearsum bhearsum at mozilla.com
Thu Oct 23 12:16:24 UTC 2008


AFAIK there is no way to do this gracefully inside of one master.  
We're in the process of doing something very similar though, and have  
come up with this technique:

We have one "main" master.cfg and multiple others which the main one  
pulls in. It goes like this:
master.cfg:
...
c['builders'] = ...
c['status'] = ...
c['change_source'] = ...
c['schedulers'] = ...
...
...
import foo
reload(foo)
c['builders'].extend(foo.builders)
c['status'].extend(foo.status)
c['change_source'].extend(foo.change_source)
c['schedulers'].extend(foo.schedulers)

foo.py:
builders = ...
status = ...
change_source = ...
schedulers = ...

Make sense?

Obviously, this leaves all of the projects inside of the same master,  
but it keeps them quite organized. There are a couple of things to  
watch out for though: There's no way at configuration time to limit  
WebStatus to certain builders. Any WebStatus included will show all  
builders - so you probably only want it in the main master.cfg. If two  
projects are using the same ChangeSource, on the same branch, you  
probably only want it in one of the configuration files - otherwise  
you'll get duplicate changes.

If it helps, here's a link to a Buildbot using this style: http://hg.mozilla.org/build/buildbot-configs/file/tip/mozilla2/


HTH.
- Ben

On 23-Oct-08, at 3:42 AM, john gale wrote:

>
> I've been thinking a lot about creating a pool of machines to use for
> many projects.  Similar to the over-used "cloud computing" concept,
> you would be able to create one master per overarching project, and
> then have a pool of build and test slaves that can be allocated based
> on who needs them.
>
> There are ways to do this clumsily; say, set up multiple configuration
> files on each slave, pointing to each different master.
>
> But is there a way to do this more gracefully?  Specifically, I don't
> want people stepping on each others' toes.  When one slave is being
> used for testing, it can't host any other projects' unit tests.  Very
> much like the SlaveLock feature...  except I'm hoping across multiple
> masters.
>
> There might not be a way to do this currently, but does it look like
> it could be feasible?  I don't have time now, but soon may be able to
> devote some serious resources to this problem.
>
> thanks,
>
> 	~ john
>
> =================
> support the arts!
> www.smadness.com
>
> updated October 12, 2005
>
>
>
> -------------------------------------------------------------------------
> 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
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel





More information about the devel mailing list