[Buildbot-devel] How would I go about this Buildbot 0.8.8 setup?

Ian Lavery IL at malaspina-labs.com
Sat Nov 9 00:06:27 UTC 2013

So, since Bill has suggested I only use one buildmaster for this setup (and I think he's right; multiple buildmasters probably are not needed) I'd like to rephrase/reiterate my questions for because I would still like some more information.

- What are the main benefits/important changes of upgrading to buildbot 0.8.8? I'd like to hear what people are finding usual.

- Using one buildmaster how would you go about setting up a web interface to allow developers to pick a stream to use ForceScheduler() on?

- When filtering a change object with fileIsImportant=filter_x is there any way to find out which p4 repository the change is coming from? I've printed out the entire contents of "change" and I can't see any helpful data about which repository the change is coming from, so I don't know how to get to it.

Any help would be appreciated, thanks!

- Ian

From: Bill Deegan [mailto:bill at baddogconsulting.com]
Sent: November-07-13 6:22 PM
To: Ian Lavery
Cc: buildbot-devel at lists.sourceforge.net
Subject: Re: [Buildbot-devel] How would I go about this Buildbot 0.8.8 setup?


On Thu, Nov 7, 2013 at 5:09 PM, Ian Lavery <IL at malaspina-labs.com<mailto:IL at malaspina-labs.com>> wrote:
Hello Buildbotters,

I am fairly new to Buildbot and I have tasked to update and reconfigure my company's Buildbot setup, so I'm going to need some help from you more experienced Buildbot developers, or at least someone to point me in the right direction.

The Current Setup:

We currently have 10 Buildslaves running on VMs and one Buildmaster. They build our code on several different platforms and run tests, code scanners, doc gens, etc. They are all currently running Buildbot 0.8.3.

We're using Perforce for version control and currently have our one Buildmaster polling all our major branches for changes. This can cause a lot of unnecessary builds and leads to some pretty hacky filtering to even attempt to parse out what is being added and what should be built on our system. We now make a habit of work in Perforce streams (essentially a branch) for rough-draft development or potential code-breaking changes, which doesn't really gel with the current Buildbot setup. So as you can see we are in need of a new Buildbot setup.

The Planned 0.8.8 Setup:

So, the goal for us is to:

1)      Update the Slaves and Master to version 0.8.8

2)      Harness the features that have been added between 0.8.3 and the new Buildbot effectively for the new setup

3)      Have multiple Buildmasters that all make use of the same pool of Buildslaves, which will consist of:

-  one assigned to trigger automatic builds for our main stream every time something is submitted

-  one assigned to trigger automatic builds for our research/active development stream every time something is submitted

-  one (or more) where the user can trigger a custom build by selecting a Perforce stream they want to build and manually triggering the build
I don't see any reason to have multiple buildmasters for this. Just have several different schedulers in the same buildbot master.

My Questions:

1)      What are some of the most useful features that have been added in the last few versions that I should know about or make use of with our new Buildbot setup?

2)      How would you go about creating multiple Buildmasters running on the same machine using the same pool of Buildslaves? Is this a pipe dream or a possibility?

No reason to do this.
Do you have any reasons beyond wanting to have three different types of events to launch builds?

3)      How would you go about setting up a Buildmaster that can switch between a list of active Perforce streams and trigger a series of builds on this stream? We just want a simple interface that allows the user to manually start a build by selecting a stream from a dropdown menu and maybe have some control over what builds.

As I said, I'm fairly new to Buildbot so be easy on me. Any help (especially in the form of code samples) would be greatly appreciated!

So for manual builds use a ForceScheduler() and for the builds on branch use SingleBranchScheduler.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20131108/8db99fa2/attachment.html>

More information about the devel mailing list