Buildbot

From Stellarium Wiki
(Difference between revisions)
Jump to: navigation, search
(Buildslave)
m
 
(2 intermediate revisions by 2 users not shown)
Line 14: Line 14:
 
* [[Compilation on Linux]] and use this to translate for other unixes
 
* [[Compilation on Linux]] and use this to translate for other unixes
 
* [[Windows Build Instructions]]
 
* [[Windows Build Instructions]]
* [[Compilation on Macosx]]
+
* [[Compilation on Mac OS X]]
  
 
Install the Buildbot buildslave software. It might already be available as a package and if this is version 0.8.7 or higher you can use it, otherwise build the buildslave from source following [http://docs.buildbot.net/current/manual/installation.html the installation instructions].
 
Install the Buildbot buildslave software. It might already be available as a package and if this is version 0.8.7 or higher you can use it, otherwise build the buildslave from source following [http://docs.buildbot.net/current/manual/installation.html the installation instructions].
Line 37: Line 37:
 
  14 3 * * * buildslave restart buildslave
 
  14 3 * * * buildslave restart buildslave
 
Initial starting can be triggered by temporarily adding :
 
Initial starting can be triggered by temporarily adding :
  * * * * * buildslave start buildslave
+
  @reboot buildslave start buildslave
 
When it runs comment-out this line.
 
When it runs comment-out this line.
  
Line 43: Line 43:
  
 
That's it.
 
That's it.
 +
 +
[[Category:Development]]
 +
[[Category:Continuous Integration]]

Latest revision as of 10:59, 22 February 2014

[edit] Continuous Integration

We use Buildbot for continuous integration. Buildbot is a continuous integration system designed to automate the build/test cycle. 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. This is especially true for cross-platform projects like Stellarium.

The Stellarium buildbot BuildMaster (kindly hosted by the FSF-France) is the central service that gathers all build results from the various builders, buildslaves in buildbot jargon. It polls our main source code repository for changes and instructs all buildslaves to rebuild.

We need volunteers to host these buildslaves and you can help the Stellarium project and run one too ! Here's how :

[edit] Buildslave

Ideally a buildslave is hosted on an always-on machine but this is not a hard requirement. Here's how to set up one :

First your system needs to meet the compile requirements, follow instructions on one of these pages :

Install the Buildbot buildslave software. It might already be available as a package and if this is version 0.8.7 or higher you can use it, otherwise build the buildslave from source following the installation instructions.

Get buildmaster credentials from H__ on irc freenode:#stellarium or mail to the stellarium mailing list and set up the buildslave replacing user and password :

buildslave create-slave buildslave gcc10.fsffrance.org:9989 user password

Edit the buildslave/info/admin and buildslave/info/host files. The admin file holds the buildslave maintainer name and email address (that's you :) and the host file has relevant info on your machine, like for instance :

Stellarium buildbot on Linux (KVM x64) Ubuntu 13.04 with Qt 5.1.1 and GCC 4.7.3 and Cmake 2.8.10.1

For the automated tests the buildslave needs access to a canvas. On X-windows based systems this can be taken care of by Xvfb so install that. On unix-like systems (linux, other unixes, mac osx) the buildslave can be started from crontab :

SHELL=/bin/bash
QTDIR="/opt/Qt5.1.1"
PATH="/opt/Qt5.1.1/5.1.1/gcc_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
LD_LIBRARY_PATH="/opt/Qt5.1.1/5.1.1/gcc_64/lib"
DISPLAY=":1"
@reboot Xvfb :1 -ac -screen 0 1024x768x24+32 >/dev/null 2>&1 &
@reboot buildslave start buildslave

And to prevent the slave from getting stuck a daily restart is OK. This part is optional, replace the hour and minute with what you prefer :

14 3 * * * buildslave restart buildslave

Initial starting can be triggered by temporarily adding :

@reboot buildslave start buildslave

When it runs comment-out this line.

On ms-windows systems the canvas and starting is handled differently. We had this running a year ago and need to re-invent it, so help is welcome.

That's it.

Personal tools
Namespaces
Variants
Actions
in this wiki
other languages
Toolbox