Buildbot is a continuous integration framework written in Python which automates the test, build and release software cycles. It is built using the Twisted networking engine, supports parallel execution of jobs across multiple platforms and runs on all major operating systems. The Buildbot installation can have one or more masters and multiple workers. In this tutorial, we will show you how to install Buildbot master and worker on Debian 9.
1. Update the System
Before continuing with the tutorial, make sure the package index is updated and all system packages are up to date:
sudo apt-get update sudo apt-get upgrade
2. Installing Buildbot
Installing Buildbot with pip is pretty simple process. If you don’t have pip installed on your Debian server you can install pip and python development packages with the following command:
sudo apt-get install python-pip python-dev
To upgrade the pip to the latest version, execute the following command:
sudo pip install --upgrade pip
The output should look something like bellow:
Collecting pip Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB) 100% |################################| 1.3MB 82kB/s Installing collected packages: pip Found existing installation: pip 9.0.1 Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr Successfully installed pip-10.0.1
Once pip is installed and updated to the latest version you can proceed with the Buildbot installation. Buildbot can be installed as any other pip package. Execute the following command to install Buildbot with pip:
sudo pip install 'buildbot[bundle]'
If the installation is successful the output should look something like bellow:
Successfully built future Twisted sqlalchemy zope.interface MarkupSafe Tempita Installing collected packages: txaio, autobahn, future, PyJWT, attrs, Automat, constantly, idna, hyperlink, incremental, zope.interface, Twisted, sqlalchemy, python-dateutil, MarkupSafe, Jinja2, pbr, sqlparse, decorator, Tempita, sqlalchemy-migrate, buildbot-console-view, buildbot-grid-view, buildbot-waterfall-view, buildbot-www, buildbot-worker, buildbot Found existing installation: idna 2.2 Uninstalling idna-2.2: Successfully uninstalled idna-2.2 Successfully installed Automat-0.6.0 Jinja2-2.10 MarkupSafe-1.0 PyJWT-1.6.1 Tempita-0.5.2 Twisted-18.4.0 attrs-18.1.0 autobahn-18.5.1 buildbot-1.1.2 buildbot-console-view-1.1.2 buildbot-grid-view-1.1.2 buildbot-waterfall-view-1.1.2 buildbot-worker-1.1.2 buildbot-www-1.1.2 constantly-15.1.0 decorator-4.3.0 future-0.16.0 hyperlink-18.0.0 idna-2.6 incremental-17.5.0 pbr-4.0.3 python-dateutil-2.7.3 sqlalchemy-1.2.7 sqlalchemy-migrate-0.11.0 sqlparse-0.2.4 txaio-2.10.0 zope.interface-4.5.0
4. Verify the Buildbot installation
To verify if Buildbot has been correctly installed issue the following command which will print the Buildbot version:
sudo buildbot --version
Buildbot version: 1.1.2 Twisted version: 18.4.0
5. Create a new system user for Buildbot
To create a new system user and group which will run our Buildbot services, type the following command:
sudo adduser --home /opt/buildbot --shell /bin/bash buildbot
6. Configuring the Buildbot Master
Now that we have Buildbot installed we can continue and create and configure our first Buildbot master.
Before executing the next commands make sure you switch to the new buildbot user by typing:
sudo su - buildbot
To create the Buildbot master type the following command:
buildbot create-master master
The output should look something like this:
The output should look something like this:
mkdir /opt/buildbot/master creating /opt/buildbot/master/master.cfg.sample creating database (sqlite:///state.sqlite) buildmaster configured in /opt/buildbot/master
Copy the default sample Buildbot configuration file by using the following command:
cp master/master.cfg.sample master/master.cfg
To be able to access the Buildbot’s web interface on your server IP address or domain you will need to edit the Buildbot configuration file and change the BuildbotURL setting. Open the configuration file:
nano master/master.cfg
c['buildbotURL'] = "http://your_ip_or_domain:8010/"
Do not forget to replace your_ip_or_domain with your server IP address or your actual domain.
Run the following command to verify the master configuration:
buildbot checkconfig master
If everything is OK you should see the following output:
Config file is good!
To start the Buildbot master run the following command:
buildbot start master
If the server starts successfully you should see the following output:
Following twistd.log until startup finished.. The buildmaster appears to have (re)started correctly.
Once the Buildbot master is started you can access the web interface at:
http://your_ip_or_domain:8010/
7. Configuring a Buildbot Worker
We will install and configure our first Buildbot worker on the same server as the master.
To create the Buildbot worker named ‘example-worker’ with password ‘pass’ on ‘localhost’, execute the following command:
buildbot-worker create-worker worker localhost example-worker pass
The output should look something like this:
mkdir /opt/buildbot/worker mkdir /opt/buildbot/worker/info Creating info/admin, you need to edit it appropriately. Creating info/host, you need to edit it appropriately. Not creating info/access_uri - add it if you wish Please edit the files in /opt/buildbot/worker/info appropriately. worker configured in /opt/buildbot/worker
If you want to use a different username (example-worker), and password (pass) you need to update the following line in the master/master.cfg
file:
# a Worker object, specifying a unique worker name and password. The same # worker name and password must be configured on the worker. c['workers'] = [worker.Worker("example-worker", "pass")]
Finally to start the worker type:
buildbot-worker start worker
If there are no errors you should see the following output:
Following twistd.log until startup finished.. The buildbot-worker appears to have (re)started correctly.
8. Finalize the Buildbot installation via web browser
You can now navigate to http://yor_ip_or_domain:8010/ and start configuring your Buildbot installation.
Of course you don’t have to install Buildbot on Debian 9, if you use one of our Linux Server Support Services, in which case you can simply ask our expert Linux admins to install Buildbot for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post, on how to install Buildbot on Debian 9, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
Thanks for sharing the descriptive information on python course. It’s really helpful to me since I’m taking python training. Keep doing the good work.