Set-up Buildbot for GDC

Johannes Pfau via D.gnu d.gnu at puremagic.com
Tue Jul 4 03:10:53 PDT 2017


Am Sun, 02 Jul 2017 19:53:05 +0000
schrieb Iain Buclaw <ibuclaw at gdcproject.org>:

> Hi,
> 
> After some lamenting I've finally gotten round to setting up a 
> buildbot for gdc.
> 
> https://buildbot.dgnu.org
> 
> Fitted with a smorgasbord of cross compiler builds, all of them 
> are broken in one way or another, given the definition of "not 
> broken" being:
> 
>   - Can build a usable compiler: all should be green here.
>   - Can build druntime and libphobos: I think only ARM holds this 
> title.
>   - Passes the testsuite with zero failures: There exist tests 
> that ICE on certain targets.
> 
> It it my hope this encourages fixing broken targets, and flags up 
> regressions in build immediately, not months down the line later.
> 
> Build configuration is available on github.  Using docker so that 
> anyone can set up and debug failing builds locally.
> 
> https://github.com/D-Programming-GDC/buildbot-gdc
> 
> 
> Regards,
> Iain.

Nice. I had a similar idea but only managed to read through the first
120 pages of the buildbot manual last weekend ;-) Buildbot sounds
really interesting as it seems to be highly customizable. The most
complicated but also useful part seems to somehow use multiple workers
for one build step. This is required for advanced cross compiler
testing, though in a simple setup we can just dedicate one ARM machine
to a X86 machine and simply keep the ARM machine out of the buildbot
configuration. The X86 can then use standard dejagnu+ssh to connect to
the ARM machine.

Another interesting thing is support of libvirt, so we should be able
to test in virtualized QEMU VMs. For some architectures hardware for
testing seems hard to come by (ARM and MIPS is easy, but SH4, PPC, ...).
One thin buildbot doesn't seem to support out of the box is a docker
latent worker hosted in a libvirt latent worker, but I guess this
shouldn't be difficult to add.


Regarding failing builds, seems like the new ARM arm-d.c file is just
missing an import. AArch64, s390, hppa, ppc, sh4, mips and alpha are OK
(as in fail in druntime). For gnuspe and sparc64 seems like the new
config mechanism is broken.

BTW: Do you know if there's any way to cluster builds by branch on the
buildbot main page? I haven't gotten that far in the docs yet ;-)

-- Johannes



More information about the D.gnu mailing list