[Testing] Buildbot Questions

Grig Gheorghiu grig at gheorghiu.net
Fri Dec 7 19:39:45 EST 2007


Michael -- I'm not ignoring your message, but I'm unable to respond
right now. I'll try to do so over the week-end.

Grig

--- Michael Stone <michael at laptop.org> wrote:

> Titus, Grig,
> 
> I have some questions about the proper usage of Buildbot and about
> how
> the current design for pybots.org originated. The design questions
> should definitely be considered to be in dialogue with Titus'
> two-month-old post:
> 
>  
>
http://ivory.idyll.org/blog/oct-07/pull-vs-push-continuous-integration.html
> 
>
------------------------------------------------------------------------
> 
> First, I've made a buildmaster and I've equipped it with a
> PilgrimChangeSource which polls the website where new builds appear
> and
> which creates Changes with appropriate hyperlinks when they show up.
> 
> Implementation Question 1: How (or maybe "where") should I calculate
> the
> URLs for the build tarball from the knowledge that, say, build
> 'joyride-1384' is available?
> 
>   At present, I'm performing this calculation in my
> PilgrimChangeSource
>   and I'm encoding the information in two new attributes in the
> Change
>   object I create in that ChangeSource.
> 
>   Perhaps this logic would be more appropriately placed in a
>   PilgrimChange object? Or somewhere farther "downstream" from the
>   ChangeSource?
> 
> Implementation Question 2: Given the Design Questions which follow,
> what
> are some decent ways to proceed in implementing my link-checker and
> permissions-checker bots?
> 
>   In particular, should I concentrate on writing specific
>   BuildSteps/RemoteCommands that describe the appropriate operations
> or
>   should I work on writing a single 'ChrootTest' buildstep that my
>   test-bots can implement, each in their own way?
> 
>
------------------------------------------------------------------------
> 
> Design Question 1: Why does buildbot use a master-slave architecture?
> 
>   Our build process has several steps that must be run as root on
> fairly
>   carefully configured F-7 machines. Since buildbot seems to be set
> up
>   to operate by granting remote shell access to the build master, we
>   would effectively be granting the buildmaster root access to every
>   build-slave on which we actually try to build images. This is not
> so
>   happy, particularly given the fact that BuildBot transmits
> plaintext
>   authentication credentials.
> 
> Design Question 2: Why is the information about how to perform builds
> and about how to interpret the results centralized on the
> buildmaster?
> 
>   We have had serious problems with human bottlenecks and with
>   machines/systems that only one person knows how to administer. Are
>   there examples of how to use buildbot a fashion that distributes
>   maintenance reponsibility, for example, by distributing the action
> of
>   adding and configuring new buildslaves?
> 
> Design Question 3: Why does the pybots design drop the problems of
> test-setup and test-dependency-satisfaction into the
> 'object-language'
> of shell commands and BuildStep-ordering instead of placing it in the
> 'meta-language' of buildbot abstractions (like BuildSteps, Builds,
> ...)?
> 
>   We have some wildly different kinds of tests that we might want to
>   collectively control and from which we might want to merge status
> info.
>   These include chroot-only tests, inside-QEMU tests,
> on-several-laptop
>   mesh tests, and on-physically-modified-laptop power-management
> stuff.
>   What are some of the tradeoffs between an on-slave opaque
>   'prepare-pkgs.sh' vs. an on-slave 'standard Makefile'-like solution
> vs.
>   a meta-language 'hierarchy-of-builders' solution?
> 
> Michael
> 
> P.S. - Thanks for having helped to make such a thought-provoking
> tool!
> P.P.S. - My work so far is available at 
> 
>   http://dev.laptop.org/git/users/mstone/xobots/     and
>   http://teach.laptop.org:8010/
> 
> Contributions and improvements gratefully accepted!
> 
> 



More information about the Testing mailing list