Changes between Version 26 and Version 27 of SettingUpBuildslave


Ignore:
Timestamp:
04/28/14 09:39:46 (10 years ago)
Author:
Samuli Seppänen
Comment:

Updated obsolete info

Legend:

Unmodified
Added
Removed
Modified
  • SettingUpBuildslave

    v26 v27  
    11= Introduction =
    22
    3 OpenVPN project uses [http://buildbot.net/trac Buildbot] to help increase code quality. Buildbot is a Python application that can work in either ''master'' or ''slave'' mode. The ''buildmaster'' is the core server which accepts connections from ''buildslaves'' and tells them what they should do. Typically the clients fetch latest sources and report any build problems to buildbot which in turn informs developers via email. In software engineering this is called [http://en.wikipedia.org/wiki/Continuous_integration Continous integration] and helps prevent build problems go unnoticed for extended time periods. The clients (buildslaves) can and should run on a variety of hardware / OS platforms. For the server (buildmaster) the OS choice is largely irrelevant.
    4 
    5 As buildbot is a general-purpose (build) automation tool, it can also be used to automatically build packages for each buildslave architecture and then push them to a central repository for users to download. However, this adds significant amount of complexity and is prone to breakage. Therefore other means are used now to provide snapshots. It would be fairly easy to integrate additional code checking tools (e.g. [http://valgrind.org/ valgrind]) into the build process.
     3OpenVPN project uses [http://buildbot.net/trac Buildbot] (current version 0.8.5) to help increase code quality. Buildbot is a Python application that can work in either ''master'' or ''slave'' mode. The ''buildmaster'' is the core server which accepts connections from ''buildslaves'' and tells them what they should do. Typically the clients fetch latest sources and report any build problems to buildbot which in turn informs developers via email. In software engineering this is called [http://en.wikipedia.org/wiki/Continuous_integration Continous integration] and helps prevent build problems go unnoticed for extended time periods. The clients (buildslaves) can and should run on a variety of hardware / OS platforms. For the server (buildmaster) the OS choice is largely irrelevant.
    64
    75As the number of buildslaves can easily get out of hand, the OpenVPN project can make use of ''your'' help - see below for details.
     
    3634== Installing buildbot ==
    3735
     36=== Installing buildbot from distro repositories ===
     37
     38Many Linux distributions have buildbot in their package repositories. Using the distro version is probably the easiest approach. Buildbot versions 0.7.x and 0.8.x are known to work with our current (0.8.5) buildmaster.
     39
    3840=== Installing buildbot using easy_install ===
    3941
    40 Probably easiest way is to install buildbot is by using [http://pypi.python.org/pypi/setuptools easy_install]: it should be available your OS'es software repository. Using ''easy_install'' will keep buildslave isolated from your OS'es package management and take care of dependencies for you. It is easiest (but [http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations not necessary]) to run ''easy_install'' as root:
     42A fairly easy and somewhat OS-agnostic way to install buildbot is to use [http://pypi.python.org/pypi/setuptools easy_install]: it should be available your OS'es software repository. Using ''easy_install'' will keep buildslave isolated from your OS'es package management and take care of dependencies for you. It is easiest (but [http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations not necessary]) to run ''easy_install'' as root:
    4143
    4244First switch to root account, e.g. using sudo or su:
     
    8284= List of build permutations =
    8385
    84 There are too many to list. However, the builds that use default build flags also trigger connection tests.
     86There are too many to list. However, the builds that use default build flags also trigger connectivity tests.
    8587
    8688= Troubleshooting =
    8789
    88 In case your build fails, try running the same build steps manually to see what the problem is. 
     90In case your build fails, try running the same build steps manually to see what the problem is.
    8991
    9092== Source checkout ==
    9193
    92 Full checkouts do the following:
     94If you're running into odd problems with buildslave Git checkouts you can try manually running the same commands the buildslave would run. The exact steps can be found from the buildslave's Git logs (in the buildmaster web interface), but they should be similar to these:
    9395
    9496{{{
     97$ mkdir /tmp/openvpntest
     98$ cd /tmp/openvpntest
    9599$ git init
    96100$ git fetch -t git://openvpn.git.sourceforge.net/gitroot/openvpn/openvpn.git +master
     
    98102$ git branch -M master
    99103}}}
     104
     105If you're unable to run these commands manually then the buildslave won't be able to do it either.