[Buildbot-devel] understanding buildbot & writing custom 'process'

Jeroen Janssen japj at xs4all.nl
Tue Dec 9 07:45:08 UTC 2003


I'm currently looking into using buildbot at my work. Let me start by 
first giving some background on our current buildprocess and how I want 
to start using buildbot.

The project I'm working consists of about 50 people, split into 2 sites 
(in 2 different countries).
We're currently using Continuus CMSynergy (from Telelogic) as 
configuration management tool.
We develop in increments and support multiple products (the buildtime of 
the complete codebase is +/- 1 hour). This is a W2K based product.
The buildmachines start building the complete tree on regular intervals 
(about every other hour) and multiple increments can build at the same time.
When done with the build, an email is send to a mailinglist stating the 
result (succeeded/failure), in short the possible error, all new tasks 
there were used since the last OK build, changed files, etc

We are currently working on automatic testing (with python - running on 
a W2K platform) and I would like to use buildbot for 'coordinating' & 
'following' the test process. With this in mind, I thought about the 
following way to 'integrate' buildbot into our process:

note: My current focus is on getting the automatic tests running through 
the use of buildbot, we have a decent build environment that I do not 
(can not) touch for the moment.

1) a certain 'ref'/'increment' build completes, and an email is send out
2) if the build succeeds, buildbot master will trigger and 'notify' it's 
3) a slave will copy the build results (exe, dlls, data, testscripts, 
etc) from the build machine
4) the slave will update it's current software (installation) based upon 
the localcopy made by step 4)
5) automatic tests for a certain product will be performed

Now I'm trying to map this onto what I understand of buildbot.
*) I want to seperate per product testing, this way I can choose how to 
configure the test machines (a different PC per 
increment/product/whatever), instead of having 'one' testSuite that 
tests all products.
*) I will need to write a 'replacement' for the 'CVS source' in order to 
copy the build tree results
*) I will need to write a 'replacement' for cvs/mail 'changes' in order 
to parse the build log and provide decent information to buildbot (but 
this might be able to wait a little, because I can manually trigger a 
slave to start doing it's work if I'm correct)
*) I will need to 'integrate' (run) our current automatic python tests 
into buildbot, in order for it to correctly report the testing status

I found that there is a seperate 'process' for twisted in the buildbot 
tree, that I'm currently digging into in order to understand how to 
extend buildbot for the above purposes.

I would like to know if my current ideas on how to deal with this sound 
ok, and maybe some hints on how other people currently deal with this :)

best regards,

Jeroen Janssen

More information about the devel mailing list