1 | | Contributing a buildbot improves the quality of Tahoe-LAFS and also is integral to defining out supported platforms, as described in [wiki:BuildbotPolicy Buildbot Policy]. You can see the results of our buildbot network in the [//buildbot-tahoe-lafs the Buildbot output page]. |
2 | | |
3 | | == Prerequisites == |
4 | | |
5 | | 1. Install [http://git-scm.com/ git] (ideally using your OS package manager) |
6 | | 1. Install [https://www.python.org/download/releases/2.7.8/ Python 2.7] (ideally using your OS package manager) |
7 | | 1. Install [https://virtualenv.pypa.io/en/stable/ virtualenv] (ideally using your OS package manager) |
8 | | 1. Create a virtualenv for the Buildbot slave: `virtualenv /path/to/environment` |
9 | | 1. Install the Buildbot slave software and dependencies in the virtualenv: `/path/to/environment/bin/pip install buildbot-slave==0.8.14` |
10 | | 1. Use `buildslave` and `buildbot` commands from `/path/to/environment/bin/` in the steps detailed below to configure and start your buildslave (activate the virtualenv to put them on your `$PATH`: `. /path/to/environment/bin/activate`). |
11 | | |
12 | | A buildslave makes TCP connections to the buildmaster, which `tahoe-lafs.org` operates. You do not need a publicly routable IP address. |
13 | | |
14 | | == Configuration == |
15 | | |
16 | | Anyone who can get their code into the development repos can take control the of the user account running the buildslave process. |
17 | | Therefore, create a dedicated user account to run this process. |
18 | | |
19 | | == Name The Buildslave == |
20 | | Choose a name for your buildslave which will fit into the list of buildslave names: [//buildbot-tahoe-lafs/buildslaves]. |
21 | | It should follow the pattern "!YourName !OperatingSystemAndVersion py2.x" -- see [https://tahoe-lafs.org/buildbot-tahoe-lafs/builders existing buildslave names] for examples. |
22 | | |
23 | | == Get a Password == |
24 | | Email Tahoe-Dev (tahoe-dev_at_tahoe_-_lafs_dot_org) with your slave name and ask for a password. |
25 | | |
26 | | == Create a Buildslave == |
27 | | Execute the following commands: |
28 | | * tahoe-lafs: {{{buildslave create-slave $BASEDIR_TAHOE tahoe-lafs.org:9987 $SLAVENAME $PASSWORD}}} |
29 | | * zfec: {{{buildbot create-slave $BASEDIR_ZFEC tahoe-lafs.org:12987 $SLAVENAME $PASSWORD}}} |
30 | | * pycryptopp: {{{buildbot create-slave $BASEDIR_PYCRYPTOPP tahoe-lafs.org:10998 $SLAVENAME $PASSWORD}}} |
31 | | |
32 | | Those three use the same $SLAVENAME, $PASSWORD and hostname, but a different $BASEDIR and a different port number. |
33 | | |
34 | | For the $BASEDIR your can use whatever directory you want. |
35 | | |
36 | | Then {{{buildbot start $BASEDIR}}}. |
37 | | |
38 | | == Monitor Output == |
39 | | Okay, once you've gotten all this working then we'll see your machine on the [//buildbot-tahoe-lafs/waterfall?show_events=true buildbot pages] and we'll see how well Tahoe-LAFS passes unit tests on your platform. |
40 | | |
41 | | ==== Optional Configurations ==== |
42 | | You can use other mechanisms to limit the privileges available to the buildslave process/account, such as jail, chroot, or Solaris Zones. You can optionally use a different user account or other privilege-limiting mechanisms to keep the tahoe-lafs, pycryptopp, and zfec buildslaves separated from each other. |
| 1 | BuildBot is no longer used by Tahoe-LAFS. For information about the project's use of BuildBot, see [https://tahoe-lafs.org/trac/tahoe-lafs/wiki/HowtoContributeABuildbot?action=history the history] for this page. |