[users at bb.net] Migrating to Nine and our capability system

Pierre Tardy tardyp at gmail.com
Wed Mar 23 12:07:16 UTC 2016


Le mar. 22 mars 2016 à 22:07, Georges Racinet <gracinet at anybox.fr> a écrit :

> Hi there,
>
> After a long time during which we couldn't do much more than maintaining
> our instances, we (Anybox) are considering migrating our buildbots to Nine.
>

This is good news!


>
> Among the many things that I've developed for our needs [1], there is a
> rather complete capability system [3], and hence I must decide whereas
> it's worth porting it or not [4]. I know it's a fairly common need that
> many
> development shops have been doing in private or almost, but it's not
> obvious to me what is freely available (for Nine) on this topic.
>
> http://trac.buildbot.net/ticket/3120 does not get to a conclusion, and I
> couldn't find much on it in a quick search of recent messages on this
> list. Maybe I missed something else ?
>

Since that, I figured Workers have properties, which can be used in
NextSlave callback in order to match any capability.
I think it would be much better to have something in the core, not
depending on having the users writing a capability specific
nextSlave/nextBuild callbacks.

Actually, there are two aspect in the capability problem. The static and
the dynamic.

1\ Static problem is the easiest. It looks this is what you implemented
already (and metabuildbot has in a smaller extend):
- One part of your config describe the workers, and their capabilities
- Another part is describing the builders, and their required capability.
The system will then automatically configure which worker to associate to
which builders.

2\ The dynamic problem. Slave are chosen at the start build phase.
- One part of your config describe the workers, and their capabilities
- Another part is describing the builders, and their required capability.
- Each build requests can require an additional set of capabilities, which
can restrict more the set of slaves which can run them.
In order to implement that efficiently, one will have to mess around inside
the buildrequest distributor code, which I can understand looks scary.

I am not sure which one you are needing/implementing.
I think it is fine that you only implement 1/ if this is what you need, but
I would like that the design opens the door to implementing 2 without need
to rewrite everything.

Regards
Pierre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildbot.net/pipermail/users/attachments/20160323/067ff2d8/attachment.html>


More information about the users mailing list