Caution
This page documents the latest, unreleased version of Buildbot. For documentation for released versions, see https://docs.buildbot.net/current/.
2.2.3. Installing the code
2.2.3.1. The Buildbot Packages
Buildbot comes in several parts: buildbot
(the buildmaster), buildbot-worker
(the worker), buildbot-www
, and several web plugins such as buildbot-waterfall-view
.
The worker and buildmaster can be installed individually or together.
The base web (buildbot.www
) and web plugins are required to run a master with a web interface (the common configuration).
2.2.3.2. Installation From PyPI
The preferred way to install Buildbot is using pip
.
For the master:
pip install buildbot
and for the worker:
pip install buildbot-worker
When using pip
to install, instead of distribution specific package managers, e.g. via apt or ports, it is simpler to choose exactly which version one wants to use.
It may however be easier to install via distribution specific package managers, but note that they may provide an earlier version than what is available via pip
.
If you plan to use TLS or SSL in master configuration (e.g. to fetch resources over HTTPS using twisted.web.client
), you need to install Buildbot with tls
extras:
pip install buildbot[tls]
2.2.3.3. Installation From Tarballs
Use pip to install buildbot
master or buildbot-worker
using tarball.
Note
Support for installation using setup.py
has been discontinued due to the deprecation of support in the distutils
and setuptools
packages.
For more details, see Why you shouldn’t invoke setup.py directly.
If you have a tarball file named buildbot.tar.gz in your current directory, you can install it using:
pip install buildbot.tar.gz
Alternatively, you can provide a URL if the tarball is hosted online. Make sure to replace the URL with the actual URL of tarball you want to install.
pip install https://github.com/buildbot/buildbot/releases/download/v3.10.1/buildbot-3.10.1.tar.gz
Installation may need to be done as root.
This will put the bulk of the code in somewhere like /usr/lib/pythonx.y/site-packages/buildbot
.
It will also install the buildbot command-line tool in /usr/bin/buildbot
.
If the environment variable $NO_INSTALL_REQS
is set to 1
, then setup.py
will not try to install Buildbot’s requirements.
This is usually only useful when building a Buildbot package.
To test this, shift to a different directory (like /tmp
), and run:
buildbot --version
# or
buildbot-worker --version
If it shows you the versions of Buildbot and Twisted, the install went ok.
If it says “no such command” or gets an ImportError
when it tries to load the libraries, then something went wrong.
pydoc buildbot
is another useful diagnostic tool.
Windows users will find these files in other places.
You will need to make sure that Python can find the libraries, and will probably find it convenient to have buildbot in your PATH
.
2.2.3.4. Installation in a Virtualenv
If you cannot or do not wish to install buildbot into a site-wide location like /usr
or /usr/local
, you can also install it into the account’s home directory or any other location using a tool like virtualenv.
2.2.3.5. Running Buildbot’s Tests (optional)
If you wish, you can run the buildbot unit test suite.
First, ensure that you have the mock Python module installed from PyPI.
You must not be using a Python wheels packaged version of Buildbot or have specified the bdist_wheel command when building.
The test suite is not included with the PyPi packaged version.
This module is not required for ordinary Buildbot operation - only to run the tests.
Note that this is not the same as the Fedora mock
package!
You can check if you have mock with:
python -mmock
Then, run the tests:
PYTHONPATH=. trial buildbot.test
# or
PYTHONPATH=. trial buildbot_worker.test
Nothing should fail, although a few might be skipped.
If any of the tests fail for reasons other than a missing mock
, you should stop and investigate the cause before continuing the installation process, as it will probably be easier to track down the bug early.
In most cases, the problem is incorrectly installed Python modules or a badly configured PYTHONPATH
.
This may be a good time to contact the Buildbot developers for help.