Adding a worker¶
This document explains how to add a new worker to the GCC Buildbot master.
Dependencies¶
- Python 3 (tested with Python 3.6);
- Python virtualenv;
Compile Farm Setup¶
The setup in a compile farm machine, due to lack of privileges (and some times lack of python3) might look slightly different than a setup on your own machine.
In the compile farm we use pyenv
to install a Python3 release
(namely 3.6.2
) and take it from there.
From your compile farm home directory:
~$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
Go ahead and follow the instructions by adding this (accurate at time
of writing) to your .bash_profile
:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Then source it and update pyenv
.
~$ source .bash_profile
~$ pyenv update
~$ pyenv install 3.6.2
~$ pyenv shell 3.6.2
Make sure that after installing Python there's no warning about
missing bz2
dependencies. You need this compiled into Python to
successfully install twisted
later on (a dependency of
buildbot-worker
). To fix this, on Fedora 26 (for example) you can do
dnf install bzip2-devel
. Afterwards, uninstall and reinstall Python
3.6.2
.
From this point onwards we have a Python 3.6.2
installation
working. We can now create a directory for the buildbot worker, create
a virtual environment to install Python dependencies and edit the
buildbot information.
~$ mkdir gcc-bbworker
~$ cd gcc-bbworker
~/gcc-bbworker$ pyenv virtualenv gcc-bbworker-env
~/gcc-bbworker$ pyenv activate gcc-bbworker-env
~/gcc-bbworker$ pip install buildbot-worker==0.9.13
Choose a name and password for your buildbot. Lets say you chose the
name cf-test-x86_64
and password LDYtYpTisHIO
, then you would use
the following command line to create the worker:
~/gcc-bbworker$ buildbot-worker create-worker -r . gcc-buildbot.linki.tools cf-test-x86_64 LDYtYpTisHIO
Now edit info/host
and info/admin
. For reference for
gcc20.fsffrance.org
, I used at creation time:
~/gcc-bbworker$ cat info/admin
Paulo Matos <pmatos@linki.tools>
~/gcc-bbworker$ cat info/host
Compile Farm gcc20, Intel Xeon CPU X5670 2.93Ghz. 2 CPU, 12 cores, 24 threads. RAM 24105 MB. Debian
At this point, you need to contact me as specified below to register the worker on master.
Once I confirm the registration of the worker, go ahead and start it.
Setup¶
We are first going to create a directory, download some python packages into a virtual environment and then create and start our buildbot.
The initial procedure looks like this (with output hidden):
$ mkdir gcc-bbworker
$ cd gcc-bbworker
$ python -m venv bbw-venv
$ source bbw-venv/bin/activate
$ pip install buildbot-worker
If all was successful up until here you need now a few details:
- worker name - choose one which is different from the ones already in use (please see existing workers in the master UI.);
- worker password - generate something random (you'll need to send this to me in plain text);
Now create the buildbot worker proper from the same directory you were in with the active virtualenv created above.
$ buildbot-worker create-worker -r . http://gcc-buildbot.linki.tools
FOO FOOPASS
In the example I used FOO
as the worker's name and FOOPASS
as the
worker's password. At this point edit info/admin
and info/host
with useful information --- this will be shown in the master's user
interface.
Registration of worker in master¶
Once you completed worker creation send me an email with the subject "New buildbot worker". In the body of the email please give me the buildbot name and password you used to the create the buildbot above.
For example:
New buildbot:
name: FOO
pass: FOOPASS