Difference between revisions of "Buildbot"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Slave system configurations)
m (Platform Coverage: fix spelling)
(22 intermediate revisions by 6 users not shown)
Line 1: Line 1:
A buildbot is now deployed for OpenOffice.org.
+
The buildbots are hosted by the Apache Software Foundation at
'''http://buildbot.go-oo.org/'''
+
'''http://ci.apache.org/projects/openoffice/'''
 +
The buildbot system used is [http://docs.buildbot.net/current/index.html extensively documented].
  
The Buildbot adaption for OOo is done in a separate project: http://code.google.com/p/ootermite/
+
The buildbot is a system to automate the compile/test cycle required by most software projects to validate code changes. With automatic and frequent builds, build problems can be pinpointed quickly, before other developers are inconvenienced by the failure. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not.
  
From the Buildbot README: http://buildbot.sourceforge.net/
+
==Clean and Incremental Builds==
 +
There are two different types of builds: incremental and clean. Incremental builds only compile files that have been changed since
 +
the last build and reuse object files and libraries of unmodified files where possible.  Clean builds start with removing old build artifacts from the last build.  Clean builds take more time to finish than incremental builds.  They are necessary after incompatible changes to the code.  A code change is considered incompatible when it affects files for which the build system does not have a dependency on the modified file.
  
The BuildBot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not. Warning counts, lint checks, image size, compile time, and other build parameters can be tracked over time, are more visible, and are therefore easier to improve.
+
==Nightly and Snapshot Builds==
 +
The buildbot performs a daily build, also called "nightly build", of the latest revision of trunk. A snapshot build is done once per week for a fixed revision of trunk or one of the branches.
  
== How to start a build ==
+
===Nightly Builds===
 +
Nightly builds are built only for en-US.  Installation sets produced by the nightly builds can be found [http://ci.apache.org/projects/openoffice here].  Direct links for the platforms:
 +
*[http://ci.apache.org/projects/openoffice/#linux64 Linux 64bit]
 +
*[http://ci.apache.org/projects/openoffice/#win Windows (32bit)]
 +
* (currently out of order) [http://ci.apache.org/projects/openoffice/#linux32 Linux 32bit]
  
* Visit http://buildbot.go-oo.org/buildbot/
+
Make sure to check if the build is up to date by looking at the [http://ci.apache.org/projects/openoffice overview].
* Choose a machine you want to build on, and click on it
+
* Fill in the ''Your name'', ''Reason for build'', ''Branch to build'' (just the CWS name)
+
* If you want to have the resulting installation sets, check ''Install Set''
+
* Press ''Force Build''
+
* Wait until the installation sets appear in http://buildbot.go-oo.org/install_sets/ (if you wanted them)
+
  
If your build breaks it ''may'' be the Buildbot's fault as they are not perfect. If you are unsure feel free to contact the Buildslave's maintainer (contact address on the Builder's overview page). Generally speaking if the corresponding MWS builds fine a CWS break is the CWS' fault.
+
===Snapshot Builds===
 +
Snapshot builds are made for these languages:
 +
ar cs da de en-GB en-US es fi fr gd gl hu it ja km ko nb nl pt-BR ru sk sl zh-CN zh-TW
 +
and platforms:
 +
Windows
  
== Slave system configurations ==
+
Installation sets produced by the latest snapshot build can be found [https://cwiki.apache.org/confluence/display/OOOUSERS/Development+Snapshot+Builds here].
  
The Buildbot slaves do not build agains a specific baseline as they have varying operating systems and compilers. This was done by intention because we want as different systems as possible to get the OOo code robust and portable. You can of course use the builds for QAing, but do not espect reproducable results.
+
Changing the revision of the snapshot build is run is done by changing the SVN tag named SNAPSHOT:
 +
*Remove the existing tag:
 +
: <code>svn rm https://svn.apache.org/repos/asf/openoffice/tags/SNAPSHOT</code>
 +
*Set the new tag to the desired revision:
 +
: <code>svn copy -r<revision> https://svn.apache.org/repos/asf/openoffice/<trunk-or-branch> https://svn.apache.org/repos/asf/openoffice/tags/SNAPSHOT</code>
  
Nevertheless, a developer must know the exact configure parameters and environment information when inspecting a build break. These information should be available through this page.
+
==Platform Coverage==
The used configure call can be always obtained through a recent build log, but is summarized here for convenience.
+
The buildbot coverage differs from platform to platform:
 +
;Linux 64bit: The nightly build is always a clean build.  There are no general known problems with the Linux 64bit builds.
 +
;Linux 32bit: Currently out of order (due to hardware problems?)
 +
;Windows: Clean builds are not reliable.  The exact reasons are not yet known, symptoms are missing header files such as apr.h.
 +
Nightly builds are incremental builds by default.
 +
Once a week the nightly build is cleaned.
 +
Clean builds can be requested manually (how?).
 +
;Mac: At the moment there are no Mac builds because there is no suitable server for this platform.
  
<table style="border: 1px solid black; padding: 10px">
+
==Buildbot Configuration File==
<tr><td><b>Slavename/Builder</b></td><td><b>configure switches</b></td><td><b>System information</b></td></tr>
+
The [https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/openofficeorg.conf buildbot configuration file]
 
+
is available and changable by every committer.
<tr>
+
<td valign="top">
+
[http://termite.go-oo.org/buildbot/builders/Fedora-10-i386 Fedora-10-i386]
+
</td>
+
<td>--disable-build-mozilla</td>
+
<td></td>
+
</tr>
+
 
+
<tr>
+
<td valign="top">
+
[http://termite.go-oo.org/buildbot/builders/MacIntel MacIntel]
+
</td>
+
<td>--with-use-shell=bash --disable-gtk --disable-build-mozilla</td>
+
<td></td>
+
</tr>
+
 
+
<tr>
+
<td valign="top">[http://termite.go-oo.org/buildbot/builders/RedFlag RedFlag]</td>
+
<td>--with-java=yes --with-jdk-home=/usr/java/jdk1.5.0_16 --with-ant-home=/usr/lib/jvm/apache-ant-1.7.1 LDFLAGS=-L/usr/local/lib --with-x=yes --without-nas --without-fonts --with-system-stdlibs --with-package-format=rpm</td>
+
<td></td>
+
</tr>
+
 
+
<tr style="border: 1px solid black">
+
<td valign="top">[http://termite.go-oo.org/buildbot/builders/Solaris-Intel Solaris-Intel]</td>
+
<td>--enable-werror --enable-report-builder=no --disable-cups --disable-build-mozilla --disable-randr --with-gnu-patch=/usr/bin/gpatch --with-gnu-cp=/usr/sfw/bin/cp --with-ant-home=/usr/sfw --with-jdk-home=/usr/jdk/jdk1.5.0_16 --disable-pasf --with-ant-home=/space/termite/prereqs/apache-ant-1.7.0 --disable-mediawiki</td>
+
<td></td>
+
</tr>
+
 
+
<tr style="border: 1px solid black">
+
<td valign="top">[http://termite.go-oo.org/buildbot/builders/Solaris-Sparc Solaris-Sparc]</td>
+
<td>--enable-report-builder=no --with-use-shell=bash --disable-cups --disable-build-mozilla --disable-randr --with-gnu-patch=/usr/bin/gpatch --with-gnu-cp=/opt/sfw/bin/cp --with-ant-home=/space/termite/apache-ant-1.7.0 --with-jdk-home=/usr/jdk/jdk1.5.0_12 --disable-pasf --with-epm=internal --with-ant-home=/space/termite/prereqs/apache-ant-1.7.0 --disable-mediawiki</td>
+
<td></td>
+
</tr>
+
 
+
<tr>
+
<td valign="top">
+
[http://termite.go-oo.org/buildbot/builders/Ubuntu-7.10-i386 Ubuntu-7.10-i386]
+
</td>
+
<td>--enable-werror --with-jdk-home=/usr/lib/jvm/java-6-sun --disable-build-mozilla</td>
+
<td></td>
+
</tr>
+
 
+
<tr>
+
<td valign="top">
+
[http://termite.go-oo.org/buildbot/builders/Ubuntu-8.04-amd64 Ubuntu-8.04-amd64]
+
</td>
+
<td>--enable-werror --disable-build-mozilla</td>
+
<td></td>
+
</tr>
+
 
+
<tr>
+
<td valign="top">
+
[http://termite.go-oo.org/buildbot/builders/Ubuntu-8.10-i386 Ubuntu-8.10-i386]
+
</td>
+
<td>--disable-binfilter --disable-cups --disable-fontconfig --disable-gconf --disable-gnome-vfs --disable-gtk --disable-mozilla --disable-odk --disable-pam --disable-randr --disable-Xaw --with-system-hsqldb --with-system-hunspell --with-system-libxml --with-system-lbxslt --with-system-python --with-system-zlib --with-use-shell=bash --without-stlport</td>
+
<td></td></tr>
+
 
+
<tr style="border: 1px solid black">
+
<td valign="top">[http://termite.go-oo.org/buildbot/builders/Win-XP2 Win-XP2]</td>
+
<td>--enable-report-builder=no --with-use-shell=bash '--with-midl-path=/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1/Bin' '--with-psdk-home=/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1' '--with-directx-home=/cygdrive/c/Program Files (x86)/Microsoft DirectX SDK (February 2007)' --with-ant-home=/cygdrive/f/termite/prereqs/apache-ant-1.7.1 --disable-build-mozilla --disable-mediawiki --with-gpc --with-csc-path=/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727 '--with-jdk-home=/cygdrive/c/Program Files (x86)/Java/jdk1.5.0_11' --disable-activex '--with-frame-home=/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 8/SDK/v2.0' '--with-cl-home=/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 9.0/VC' --with-nsis-path=/cygdrive/c/termite/prereq/NSIS '--with-package-format=installed msi ddd'</td>
+
<td>WindowsXP Server with SP2</td>
+
</tr>
+
</table>
+
  
 
[[Category:Build_System]]
 
[[Category:Build_System]]

Revision as of 14:50, 15 April 2013

The buildbots are hosted by the Apache Software Foundation at http://ci.apache.org/projects/openoffice/ The buildbot system used is extensively documented.

The buildbot is a system to automate the compile/test cycle required by most software projects to validate code changes. With automatic and frequent builds, build problems can be pinpointed quickly, before other developers are inconvenienced by the failure. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not.

Clean and Incremental Builds

There are two different types of builds: incremental and clean. Incremental builds only compile files that have been changed since the last build and reuse object files and libraries of unmodified files where possible. Clean builds start with removing old build artifacts from the last build. Clean builds take more time to finish than incremental builds. They are necessary after incompatible changes to the code. A code change is considered incompatible when it affects files for which the build system does not have a dependency on the modified file.

Nightly and Snapshot Builds

The buildbot performs a daily build, also called "nightly build", of the latest revision of trunk. A snapshot build is done once per week for a fixed revision of trunk or one of the branches.

Nightly Builds

Nightly builds are built only for en-US. Installation sets produced by the nightly builds can be found here. Direct links for the platforms:

Make sure to check if the build is up to date by looking at the overview.

Snapshot Builds

Snapshot builds are made for these languages:

ar cs da de en-GB en-US es fi fr gd gl hu it ja km ko nb nl pt-BR ru sk sl zh-CN zh-TW

and platforms:

Windows

Installation sets produced by the latest snapshot build can be found here.

Changing the revision of the snapshot build is run is done by changing the SVN tag named SNAPSHOT:

  • Remove the existing tag:
svn rm https://svn.apache.org/repos/asf/openoffice/tags/SNAPSHOT
  • Set the new tag to the desired revision:
svn copy -r<revision> https://svn.apache.org/repos/asf/openoffice/<trunk-or-branch> https://svn.apache.org/repos/asf/openoffice/tags/SNAPSHOT

Platform Coverage

The buildbot coverage differs from platform to platform:

Linux 64bit
The nightly build is always a clean build. There are no general known problems with the Linux 64bit builds.
Linux 32bit
Currently out of order (due to hardware problems?)
Windows
Clean builds are not reliable. The exact reasons are not yet known, symptoms are missing header files such as apr.h.

Nightly builds are incremental builds by default. Once a week the nightly build is cleaned. Clean builds can be requested manually (how?).

Mac
At the moment there are no Mac builds because there is no suitable server for this platform.

Buildbot Configuration File

The buildbot configuration file is available and changable by every committer.

Personal tools