Build Server web interface

Alexander Neundorf neundorf at kde.org
Sun Oct 11 18:29:45 CEST 2009


On Sunday 11 October 2009, you wrote:
> Alexander Neundorf schrieb:
> > On Friday 09 October 2009, Patrick Spendrin wrote:
> >> Hi everybody,
> >>
> >> in the last days I have mostly been working on a webinterface for our
> >> build server: It currently resides under
> >> http://winkde.org/pub/kde/ports/win32/dashboard/ but might change
> >> location in the future if we have 64bit builds.
> >>
> >> I have outlined some features I have in mind already on my blog post:
> >> http://saroengels.blogspot.com/2009/10/build-server-web.html
> >>
> >> Especially the nightly builds will hopefully before monday.
> >>
> >> I hope it is of some use for you & this way we can improve KDE on
> >> Windows even more.
> >
> > Nice :-)
> > But why it it necessary to implement an own solution instead of trying to
> > use cdash ? Which features are missing or in what other way doesn't it
> > work as required for the Windows nightly builds ?
>
> We have a completely set up dependency chain.

This is emerge, right ?

> We can change anything we want in our code.
> CDash currently tries to take care of everything, beginning from
> fetching the sources up to running the unittests. 

There are two components, one is the web interface, cdash, the other one is 
the part which gets the sources, builds and runs the unit tests, this is 
ctest. When doing a Nightly/Continuous build with ctest, ctest submits some 
xml file to cdash at the end with the results.

This is the "core" of the ctest script I'm using for kdelibs, kdesupport and 
some others:

-----------8<--------------8<--------------8<------------------

ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}")
ctest_start(Nightly)
ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}" )

kde_ctest_write_initial_cache("${CTEST_BINARY_DIRECTORY}" 
                              CMAKE_INSTALL_PREFIX BUILD_experimental )
ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" )
ctest_build(BUILD     "${CTEST_BINARY_DIRECTORY}" )
ctest_test(BUILD      "${CTEST_BINARY_DIRECTORY}" )
ctest_submit()

-----------8<--------------8<--------------8<------------------

So, each step is invoked explicitely, including the svn update/checkout via 
ctest_update(). I haven't tried what happens if this step is skipped, and you 
only leave the configure, build, test and submit steps in the script.
Maybe also the configure-step could be skipped if this is already done by 
emerge.
A disadvantage of leaving out the ctest_update() step would be that in case of 
breakage, the webinterface does not know which commits happened which may 
have introduced the breakage, and so it can't send emails to those 
committers.

> We already have this 
> code, we would have to either find a way to translate everything into
> CDash or rewrite it (this would be a lot of work). This seems to be less
> flexible for us, as with the currently solution we can use the same code
> for both automatic building of packages, as for building packages on
> each computer for each developer.

Alex


More information about the Kde-windows mailing list