Difference between revisions of "Buildbot"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Features)
(Update the broken link to the buildbot configuration file.)
 
(68 intermediate revisions by 15 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://ooo-staging.osuosl.org:8010/'''
+
'''http://ci.apache.org/projects/openoffice/'''
 +
The buildbot system used is [http://docs.buildbot.net/current/index.html extensively documented].
  
From the Buildbot README: http://buildbot.sourceforge.net/
+
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.
  
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.
+
==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.
  
== OpenOffice.org Buildbot ==  
+
==Nightly and Snapshot Builds==
The Buildbot will:
+
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.
* Build CWS/SVN branches on multiple platforms and make output available to developers
+
* Generate and make available install sets for multiple platforms
+
* Run tests (smoketest, performance tests, etc.) and make test reports available for tracking and regression.  
+
  
== Buildbot vs. Tinderbox ==  
+
===Nightly Builds===
Currently, there is a [[Tinderbox]]. In fact, the Buildbot uses or adapts several Tinderbox scripts. The Buildbot provides several advantages:  
+
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:
* At-a-glance, customizable statusboard
+
*[http://ci.apache.org/projects/openoffice/#linux64 Linux 64bit]
* Flexible, modular, extensible framework
+
*[http://ci.apache.org/projects/openoffice/#win Windows (32bit)]
* Any machine can be easily turned into a buildbot
+
* (currently out of order) [http://ci.apache.org/projects/openoffice/#linux32 Linux 32bit]
* Buildbots can be hosted behind firewalls
+
  
== Deployment & Hardware ==
+
Make sure to check if the build is up to date by looking at the [http://ci.apache.org/projects/openoffice overview].
Currently, the botmaster and several buildbots are hosted at OSU-OSL (http://osuosl.org). Additional machines will be added to the pool. Sun QA/RE plans to host a Solaris bot.  
+
  
=== Allocation ===  
+
===Snapshot Builds===
Many buildbot based projects dedicate groups of bots to specific code branches. Thus, for example, checkins to HEAD will automatically trigger the associated pool of machines and the changes built, tested on multiple platforms. See for example: http://www.python.org/dev/buildbot/
+
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
  
However, this is impractical for OpenOffice.org due the numericity of branches (CWS'es). Instead, we focus on creating a reasonable sized pool of machines for each platform/variant, with flexible build policies (see below).
+
Installation sets produced by the latest snapshot build can be found [https://cwiki.apache.org/confluence/display/OOOUSERS/Development+Snapshot+Builds here].
  
Currently, bots build for:  
+
Changing the revision of the snapshot build is run is done by changing the SVN tag named SNAPSHOT:
* debian
+
*Remove the existing tag:
* suse 10.0
+
: <code>svn rm https://svn.apache.org/repos/asf/openoffice/tags/SNAPSHOT</code>
* suse 10.1 (jre and gij)
+
*Set the new tag to the desired revision:
* suse 7.3 (several)
+
: <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>
* windows xp (3+)
+
  
== Policies ==  
+
==Platform Coverage==
The bots will be configured with policies that take into account the pool size, machine status and build time. When a bot is busy doing a build, additional requests are automatically queued.  
+
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.
  
* At UTC 0200 + random() build HEAD
+
==Buildbot Configuration File==
* At milestone release build milestone
+
The [https://svn.apache.org/repos/infra/infrastructure/buildbot2/projects/openofficeorg.py buildbot configuration file]
* Build manually requested CWS or milestone
+
is available and changable by every committer.
* Build automatically selected CWS
+
  
== Features ==
+
[[Category:Build_System]]
* When no CWS is provided --> checkout HEAD 'use OpenOffice'
+
* Show smoke-test results in status
+
* Header Row - provide number/link to last build (related to status)
+
* Install Set Yes/No (checkbox) option on requestor form, deploy install-sets on bot-master
+
* CWS-Oriented View
+
** Add header X axis (timeline)
+
** Three different views - all, ready for QA, new
+
* Summaries
+
** tail, warnings, errors, summary log like tinderbox
+
* Email notification
+
** Send mail to requestor@openoffice.org when finished.
+
* UserId/Password verification for force build and stop buid
+
* Arbitration algorithm to distribute builds on various slaves
+
* Collect changes by one user in one build
+
* For windows slaves, provide link to html build status page
+
* Extra config switches field in force build form. Developers can specify some extra configure switches specific to there CWSs.
+
* CWS checkout
+
* AllCVS mailing list listener to auto trigger build on commit notification
+
* Increase length of status page.
+
* Buildslave info on slave web page
+
* Add suse 7.3 buildslave
+
 
+
== People ==
+
* Prasad Madhav (pmadhav) deployed and customizes the buildbot
+
* mikeleib, kaib, vq, dkeskar support and provide ideas
+

Latest revision as of 05:38, 15 January 2023

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