[Buildbot-devel] BuildBot master configuration questions

Fulvio Cervone fcervone at me.com
Fri May 13 03:40:12 UTC 2011


On May 12, 2011, at 1:58 PM, Evan Driscoll wrote:

> On 05/12/2011 03:01 PM, Fulvio Cervone wrote:
>> Not sure to which extent the multiple projects are not supported...actually I have a single builder that pokes in my server, checking out multiple projects and building them without problems; I have only one master and one slave and 5 different projects.
> 
> The impression I have is that there was a problem caused by not passing the repository that received a change from the change sources, or something like that.
> 
> You have 5 projects, but are they all in the same repository or different repositories?
> 

I honestly do not remember this problem, but it is not that long since when I started to use Buildbot. Honestly for the past 3 months I've used it on multiple projects, each one with it's own code repository, but i follow only the changes in one of the projects, so the SVNPoller is pinging just one repository; for the others i just check out whatever change was made when i get the update on the main repository (or every hour).

Probably if you want to follow multiple repository at the same time, you will hit that problem that you described, but this is a problem with the SVNpoller; and having more masters would not fix the problem IMHO.

> 
>> Regarding point #2, you could basically do what i did: check out a project in a step, build it in another step, check out the second project and build it and so on; using the order that best suit your product (mine requires 2 other components to be built before the main one, and each one is in it's own repository).
> 
> For me it's more like "check out 5 repositories, then run these couple commands to build".
> 
that would work; I do the same.

> The main problem I had was that I hadn't yet discovered how to use the workdir parameter, so my repositories overwrote each other.
> 
> The concerns I have now are things like how to deal with the got_revision property that the SVN build step sets, since there will need to be multiple 'got_revision' properties. I guess this probably isn't *super* important at least. I'm also not sure how the branch properties will interact and stuff like that.
> 

Depends what do you do with that property; in my case I need to alert the devs only when an issue arise on the main project, so I get the updates from the svnpoller and pack everything in a nice mailnotifier, that is sent to the devs automagically if something goes wrong; while I just notify by hand if another related component fail, and then go search by hand trough the svn email to figure out who broke it (is not ideal but is a fair solution, until i find a better solution).

For the branching there is a very good chapter in the manual that explain it pretty well; you can just use the example there and it will work out of the box (you just have to adjust it to your needs and number of branches that you want to support

> These may not be a problem, and I guess I don't have a specific question here at this point.
> 


If you are planning to go for the multiple machines, remember that nobody prohibits you to have certain boxes that will run master and slave on the same box (each one pointing at a different repo with an unique SVNPoller); just be careful to not let them have more than one master

> Evan
> 
> 
> 
>> 
>> Then depends how you wanna control the process...you could make a builder for each, and once that all the required components are built you can trigger the main one; or have everything in a single builder....I do not think that there is a right or wrong way since it depends from your project.
>> 
>> 
>> 
>> On May 12, 2011, at 11:05 AM, Evan Driscoll wrote:
>> 
>>> I have two questions, both with a somewhat similar flavor, and both
>>> related to this sentence in the section on change sources: "In general,
>>> each Buildmaster watches a single source tree. It is possible to work
>>> around this, but true support for multi-tree builds remains elusive."
>>> 
>>> 
>>> 1. If I have multiple projects (e.g. I decide to build them based on
>>>    different criteria, and perform different actions to build them),
>>>    would I save a lot of headaches by making multiple masters?
>>> 
>>>    Difficulty: I'd like to share build slave machines between the
>>>    masters for better load balancing. At the extreme, for the time
>>>    being we will only have one machine acting as a build slave.
>>>    Should I just run multiple slave instances on that machine, one
>>>    per master?
>>> 
>>> 
>>> 2. Suppose I have one project that is made up of several repositories.
>>>    How should I configure things? (To keep things simple I'd like to
>>>    use either (probably multiple instances of) the SVNPoller class or
>>>    the svn_watcher contrib script.)
>>> 
>>>    To be specific, this project has a few libraries that are in
>>>    separate repositories, so to build it, you have to check all of them
>>>    out. We also want to watch all of those repositories for changes and
>>>    to make blamelists.
>>> 
>>>    (Actually I have two of these projects. For one, there is an
>>>    umbrella repository that uses svn:externals to pull all the
>>>    different parts in, so if that makes the situation easier it'd be
>>>    nice to know that too. The second project doesn't really have that
>>>    option.)
>>> 
>>> Evan
>>> 
>>> ------------------------------------------------------------------------------
>>> Achieve unprecedented app performance and reliability
>>> What every C/C++ and Fortran developer should know.
>>> Learn how Intel has extended the reach of its next-generation tools
>>> to help boost performance applications - inlcuding clusters.
>>> http://p.sf.net/sfu/intel-dev2devmay
>>> _______________________________________________
>>> 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