skip to navigation
skip to content

Not Logged In

collective.buildbot 0.1.1

A set of zc.buildout recipe and package to easy install buildbot

Latest Version: 0.3.3

Change history

trunk (2008-05-02)

  • xxx [Ingeniweb]

0.1.1 (2008-05-02)

  • bugs fixes [gawel]

0.1.0 (xxxx-xx-xx)

  • Created recipe with ZopeSkel [Gael Pasgrimaud].

Package description

This package provide a set of zc.buildout recipes to easy install a buildbot

The master recipe

Supported options

The recipe supports the following options:

port
The port buildbot listens to. Called by slaves.
wport
The web port buildbot use to display the fountain.
project-name
Project name. Displayed in the web pages.
project-url
Project url, used in the web pages.
url
buildbot url.
build-slaves
Lists the slaves, with the name and the password for each.

Example usage

We'll start by creating a buildout that uses the recipe:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = buildmaster
...
... [buildmaster]
... recipe = collective.buildbot:master
... port = 8080
... wport = 8082
... project-name = The project
... project-url = http://example.com
... url = http://example.com/buildbot
... slaves =
...     slave1 password
...     slave2 password
... """)

Running the buildout gives us:

>>> print system(buildout)
Installing buildmaster...
New python executable in /sample-buildout/parts/buildmaster/bin/python
Installing setuptools.............done.
Generated script '/sample-buildout/parts/buildmaster/buildbot.tac'.
Generated config '/sample-buildout/parts/buildmaster/buildbot.cfg'.
Generated script '/sample-buildout/bin/buildmaster'.

As shown above, the buildout generated the required configuration files.

Twisted .tac file to launch buildbot:

>>> cat(join('parts', 'buildmaster', 'buildbot.tac'))
from twisted.application import service
from buildbot.master import BuildMaster
import os
import sys
import collective.buildbot
<BLANKLINE>
basedir = '/sample-buildout/parts/buildmaster'
buildbot = os.path.dirname(collective.buildbot.__file__)
<BLANKLINE>
configfile = os.path.join(buildbot, 'master.py')
application = service.Application('buildmaster')
<BLANKLINE>
master = BuildMaster(basedir, configfile)
master.setServiceParent(application)
<BLANKLINE>

A buildout config file:

>>> cat(join('parts', 'buildmaster', 'buildbot.cfg'))
[slaves]
slave1 = password
slave2 = password
<BLANKLINE>
[buildbot]
projects-directory = /sample-buildout/parts/projects
project-name = The project
pollers-directory = /sample-buildout/parts/pollers
url = http://example.com/buildbot
wport = 8082
project-url = http://example.com
port = 8080
allow-force = false
<BLANKLINE>

The slave recipe

Supported options

The recipe supports the following options:

host
Host of the buildmaster.
port
Port on which the buildmaster listens.
password
Sets the password for the buildbot.

Example usage

We'll start by creating a buildout that uses the recipe:

>>> write('buildout.cfg',
... """
... [buildout]
... parts =
...    buildslave
...
... [buildslave]
... recipe = collective.buildbot:slave
... host = localhost
... port = 8888
... password = password
... """)

Running the buildout gives us:

>>> print system(buildout)
Installing buildslave.
...
Generated script /sample-buildout/parts/buildslave/buildbot.tac.
Generated script '/sample-buildout/bin/buildslave'.
<BLANKLINE>

The project recipe

Supported options

The recipe supports the following options:

Lists the projects the buildbot deal with (one project=one column) The values must be a section name in the configuration file. Then each of this section must contain:

slave-names

A list of slaves name to use for the project.

base-url

Base url for the repository.

branch

Last part of the url. Default to 'trunk'. Not used if you provide a base url ended with 'trunk'.

email-notification-sender

An email to send mail with.

email-notification-recipients

A set of lines with emails to send mail to.

build-sequence

The sequence of shell commands to build the project. Defaults to:

  • bin/python boostrap.py
  • bin/buildout

test-sequence

The sequence of shell commands that are run to test the project. Defaults to 'bin/test'

The buildbot will use base-url/project/branch to get the full url to be retrieved for the checkout.

Example usage

We'll start by creating a buildout that uses the recipe:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = my.package
...
... [my.package]
... recipe = collective.buildbot:project
... slave-names = slave1
... base-url = http://example.com/svn/
...
... """)

This will test the package located at http://example.com/svn/my.package/trunk

Running the buildout gives us:

>>> print system(buildout)
Installing my.package.
Generated config '/sample-buildout/parts/projects/my.package.cfg'.

This will generate a config file for each project:

>>> cat(join('parts', 'projects', 'my.package.cfg'))
[project]
...
name = my.package
...
slave-names = slave1
...
branch = my.package/trunk
base-url = http://example.com/svn/
<BLANKLINE>

Email notification:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = my.package
...
... [my.package]
... recipe = collective.buildbot:project
... slave-names = slave1
... email-notification-sender = foo@bar.com
... email-notification-recipient =
...     bar@foo.com
...     buildbot@foo.com
... base-url = http://example.com/svn/
...
... """)

The projects recipe

Supported options

Options are the same than the project except one.

projects

A list of projects name.

The project recipe

Supported options

The recipe supports the following options:

Lists the projects the buildbot deal with (one project=one column) The values must be a section name in the configuration file. Then each of this section must contain:

vcs

Default to svn

base-url

Root url for the repository.

hist-max

Number of history lines to look at (Default 100).

user

A svn user (Default None).

password

A valid svn password for the user (Default None).

poll-interval

Interval in second to check for changes.

Example usage

We can define a poller to make our buildbot aware of commits:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = svnpoller
...
... [svnpoller]
... recipe = collective.buildbot:poller
... base-url = http://example.com/svn/buildout
... user = h4x0r
... password = passwd
... """)

>>> print system(buildout)
Installing svnpoller.
Generated config '/sample-buildout/parts/pollers/svnpoller.cfg'.

Poller generation. You can see here all the available options:

>>> cat(join('parts', 'pollers', 'svnpoller.cfg'))
[poller]
hist-max = 100
base-url = http://example.com/svn/buildout
vcs = svn
user = h4x0r
svn-binary = svn
password = passwd
poll-interval = 60
<BLANKLINE>

The pollers recipe

Supported options

Options are the same than the project except one.

base-urls

A list of repository urls to look for.

Contributors

Gael Pasgrimaud, Tarek Ziade, Kai Lautaportti, Jean-Francois Roche

File Type Py Version Size # downloads
collective.buildbot-0.1.1.tar.gz (md5) Source 20KB 30
collective.buildbot-0.1.1-py2.4.egg (md5) Python Egg 2.4 49KB 64