[Buildbot-devel] Hierarchical tests of different software sources, where some tests are allowed to fail

Peter Schueller schueller.p at gmail.com
Tue Dec 28 15:30:26 UTC 2010


Dear all,

I would like to setup the following build infrastructure with buildbot:

[multiple compilers used|multiple boost branches used]

1) checkout boost and build it (exit if this fails)
2) checkout some other software A, build it (exit if this fails)
2.1) make check software A (continue if this fails)
2.2) make distcheck software A (continue if this fails)
3) install software A into a specific directory (exit if this fails)
for each plugin B,C,D,... that depends on software A:
4.B) checkout plugin B, build it using installed software A (exit for
branch 4.B if this fails)
4.B.1) make check plugin B (continue if this fails)
4.B.2) make distcheck plugin B (continue if this fails)
4.C) checkout plugin C, build it using installed software A (exit for
branch 4.C if this fails)
...

So I need a possibility to do a hierarchically scheduled build, where
steps at the "leaves of the tree" are noncritical for subsequent
steps, and steps at "inner nodes of the tree" are critical for
subtrees.

I found the possibility of the "Dependent Scheduler" but the
documentation tells me that there is no guarantee this scheduler will
use the correct revision number (e.g., the same one for steps 4.B and
1).

The same documentation tells me that with the Triggerable Scheduler
this should be easier or better possible, but I do not see how I can
do noncritical steps using that scheduler, or critical ones (if the
default is noncritical).

Furthermore it is not clear to me whether I could setup the whole
thing even better, namely as follows:
* some place to build the most recent boost branches to
* building boost is triggered nightly and by commits
* some place to build the most current version of A
* building and testing A is triggered nightly and by commits
* some place to build each plugin B,C,D
* building and testing B,C,D is triggered independently nightly and by commits
* builds of B,C,D always use the most recent successful build of A

I would really appreciate some hints which strategy to adopt and where
to look for more information (pointers to documentation and sourcecode
are fine).

Best,
Peter




More information about the devel mailing list