Version 37 (modified by daira, at 2014-08-23T21:26:40Z) (diff) |
---|
Contributing a buildbot improves the quality of Tahoe-LAFS and also is integral to defining out supported platforms, as described in Buildbot Policy. You can see the results of our builtbot network in the the Buildbot output page.
Prerequisites
- Install git.
- Install Python 2.7.
- Install setuptools: download ez_setup.py into a directory with no Unicode characters in the path, and run it using python ez_setup.py.
- Run "easy_install pip".
- Run "pip install buildbot-slave". Do this in a virtualenv if you prefer. (If this doesn't work, see the instructions on the Buildbot trac for installing buildbot-slave.)
A buildslave makes TCP connections to the buildmaster, which tahoe-lafs.org operates. You do not need a publicly routable IP address.
Configuration
Anyone who can get their code into the development repos can take control the of the user account running the buildslave process. Therefore, create a dedicated user account to run this process.
Name The Buildslave
Choose a name for your buildslave which will fit into the list of buildslave names: buildbot-tahoe-lafs/buildslaves. It should follow the pattern "YourName? OperatingSystemAndVersion? py2.x" -- see existing buildslave names for examples.
Get a Password
Email Brian (warner-tahoe_at_lothar_dot_com) and ask for a password.
Create a Buildslave
Execute the following commands:
- tahoe-lafs: buildslave create-slave $BASEDIR_TAHOE tahoe-lafs.org:9987 $SLAVENAME $PASSWORD
- zfec: buildbot create-slave $BASEDIR_ZFEC tahoe-lafs.org:12987 $SLAVENAME $PASSWORD
- pycryptopp: buildbot create-slave $BASEDIR_PYCRYPTOPP tahoe-lafs.org:10998 $SLAVENAME $PASSWORD
Those three use the same $SLAVENAME, $PASSWORD and hostname, but a different $BASEDIR and a different port number.
For the $BASEDIR your can use whatever directory you want.
Then buildbot start $BASEDIR.
Monitor Output
Okay, once you've gotten all this working then we'll see your machine on the buildbot pages and we'll see how well Tahoe-LAFS passes unit tests on your platform.
Optional Configurations
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.