OpenAFS Buildbot Master Configuration

The OpenAFS buildbot master configuration is maintained in the openafs-contrib area of github.

Buildbot master installation

The following instructions describe how to use pip to install the buildbot master in a Python virtual environment. With sudo/root access, install Python3 and the development packages for it.

Ensure TCP ports 9989 and 8010 are open. Create a buildbot user on the system. The remaining steps to not require sudo access and should be run as the buildbot user.

Optionally create a project level directory, for example:

$ mkdir openafs-buildbot
$ cd openafs-buildbot

Create a Python virtual environment:

$ python3 -m venv venv

Activate the virtual environment for the installation:

$ source venv/bin/activate

Install buildbot and it's dependencies:

$ pip install --upgrade pip
$ pip install 'buildbot[bundle]'

Create the buildbot master instance:

$ buildbot create-master master

The virtual environment can now be deactivated:

$ deactivate

Master configuration

Download the buildbot master configuration:

$ git clone https://github.com/openafs-contrib/afsbotcfg.git
$ cd afsbotcfg

Create the Makefile and deploy the buildbot master.cfg and sample settings.ini file:

$ python configure.py
$ make install

Make a link to the makefile in the top level directory:

$ cd ..
$ ln -s afsbotcfg/Makefile

Master settings

Edit the settings.ini file in the master directory. This file stores information we do not track with git, such as the buildbot worker passwords. The settings.ini file is an INI-style file with the following sections:

  • local - settings specific to the local environment
  • admins - the list of user emails and passwords for authenticated access
  • email - emails for notifications
  • workers - the list of worker names and passwords

Example:

$ cat master/settings.ini
[local]
buildbotURL = http://buildbot.openafs.org:8010/

[admins]
tycobb@yoyodyne.com = password

[workers]
example-worker-1 = secret1
example-worker-2 = secret2

Gerrit account

The buildbot master needs an account on the OpenAFS Gerrit to listen for Gerrit events and to report verified changes on successful builds. The name of the account is buildbot. Place the ssh keys for the buildbot's Gerrit account in the .ssh directory under the home directory of the local account running the buildbot master. The key file name should match the ones defined in the master.cfg file.

Starting the master

Check the buildbot master configuration with the command:

$ make check

Start the buildbot master with the command:

$ make start

Stop the buildbot master with the command:

$ make stop