Build Brigade Documentation

Here you can find useful documentation and guides related to the Build Brigade work.

General information

The Gnome Buildbot has been integrated in Jhbuild. You can access this functionality by using the "bot" command in Jhbuild. Type jhbuild bot --help for a list of available options.

Setting up a Build Slave

Configure Jhbuild as usual, make sure it builds things fine, then mail build-brigade-list@gnome.org with the name you want for your build slave. In return you will get a slave password.

Run jhbuild bot --setup and add the following lines to your ~/.jhbuildrc:

  jhbuildbot_master = 'build.gnome.org:9070'
  jhbuildbot_slavename = 'slavename'
  jhbuildbot_password = 'password'

Then run jhbuild bot --start and it will start getting jobs from the build master.

You probably want to make sure that the development packages of some system-level components are installed on your slave to avoid unnecessary build failures of some modules:

  • libudev1 (for NetworkManager)

  • ppp (for NetworkManager)

  • libusb1 (for upower)
  • icu (for WebKit)

  • neon (for libmusicbrainz)
  • guile (for gnome-games)
  • perl-Text-CSV (for gtk-vnc)
  • libcap-ng (for bluez)
  • libXv (for ekiga)

Some more hints that make your build slave more useful:

  • Turn on verbose output for builds, e.g. by adding

  makeargs = 'V=1'
  • to your .jhbuildrc
  • Make an X display available, since many tests require one. One way of doing this is:

  Xvfb :10 &
  DISPLAY=:10
  jhbuild bot --start ...

Setting up a Build Master

If you want to have your own integration system (separated from Gnome's) for your project(s), then you will need t deploy your own master as well. Follow these instructions if that's your case:

Install jhbuild and configure it properly. For the master installation you only need to define these parameters in .jhbuildrc:

  moduleset = The moduleset you want your slaves to build
  checkoutroot = Directory where jhbuild will download sources
  prefix = Directoy where jhbuild will install binaries

Run jhbuild bot --setup

Create a csv file with your slaves and their passwords. The format of each line is like this:

  slavename,slavepassword

If you want to use different ports for the web view (8080) or the master<->slaves communication (9070), you can also edit the master.cfg file according to your preferences.

Then run jhbuild bot --start-server and it will start the server

Some tips:

  • There is a buildbot/ dir in the jhbuild tree that contains most of the needed files
  • The slaves.csv file needs to be in the cwd of the server

Add your slave to GNOME infrastructure

Although It's not mandatory, It's recommended that you configure both slave and master in your own machine. Once it is working, it is just configure the master on build.gnome.org to include your slave, and configure your slave to connect to build.gnome.org master.

Here a list of what is needed:

  • max number of concurrent builds
  • whether make check should be run (many checks will fail if jhbuild is not run in a xvfb session)
  • contact details (name, email)
  • host details (distribution, version, architecture)

Older Instructions

BuildBrigade/DocsAndGuides (last edited 2010-12-20 12:54:57 by MatthiasClasen)