[Buildbot-devel] Command-line build master interface

Brian Warner warner-buildbot at lothar.com
Wed Jul 6 22:00:30 UTC 2005


> I can use the web interface on the build master, but I don't always want to
> have to connect to it though a web browser (or IRC, I guess). Does such a
> thing exist, or does my question even make sense?

"sort of" is my answer to both questions :).

The buildmaster will run just fine without any status delivery targets at
all, and it will faithfully checkout/compile/test whatever project you've
configured it to. However then it becomes fairly hard to figure out if the
tests actually passed or not, making the builds somewhat like the tree
falling in the woods that nobody can hear.

There are four built-in classes which implement IStatusTarget:

 html.Waterfall: does the chronologically-based web page display
 words.IRC: an IRC bot connects to your channel and can answer questions
 mail.MailNotifier: email is sent after certain builds with the results
 client.PBListener: a server runs on a TCP port for specialized clients

You can write new classes that implement IStatusTarget (and are thus eligible
for inclusion in the c['status'] configuration list), which can do whatever
you want with the status information. You can also write programs which
implement the PB-based remote status delivery protocol (for which
client.PBListener is the server), which again can do whatever you like with
the status information they receive.

Two sample clients for PBListener are included in the 'buildbot' command-line
tool. 'buildbot statuslog' is a text-only display that just emits events to
stdout, one per line, with things like "build started" and "build finished".
'buildbot statusgui' is a GTK-based client that displays a couple of boxes
that change color as the builds complete.

So the real question is: what do you want to get out of the Buildbot? The
nominal purpose is to thwack developers upside the head when they've made a
mistake, for which you want to make it easy for them to find out what the
current build status is. This doesn't have to be through a web page, but it's
a pretty simple way to get a lot of information published, and serves that
purpose pretty well. I hope to include some more text-like interfaces in the
future (particularly once the whole "Problem"-tracking thing I've talked
about is implemented, then developers should be able to run 'buildbot
showproblems' and get a list of everything the buildbot is upset about, with
special emphasis on any items that the developer is responsible for). But
until we get some more interrupt-driven status delivery tools in place, the
polling-based ones like Waterfall are the way to go.

What would the text-based interface you're thinking of allow you to do? It
probably wouldn't be too hard to build one, but so far there hasn't really
been a need.

thanks,
 -Brian




More information about the devel mailing list