[TIP] continuous integration - what are you using?

Michael Foord fuzzyman at voidspace.org.uk
Thu Aug 27 16:25:34 PDT 2009


Michael Foord wrote:
> C. Titus Brown wrote:
>   
>> Hi all,
>>
>> I think I'm going to do a comparison of CI tools soon, and I wanted to
>> know what people are using in their Python projects.  So far I'm
>> planning on looking at these three:
>>
>> Hudson
>> CruiseControl
>>   
>>     
> We used to use CruiseControl.NET until we broke it.
>   

The issues we had with CruiseControl.NET, which may or may not be fixed 
now, were quite interesting.

Some of our tests are for the XML handling of our save files. If we 
generate the wrong XML then the bad XML is output in the error message - 
this XML could include a CDATA block, which would then end up in the 
CruiseControl logs - inside an XML CDATA block (the format CC.NET used 
for its logs). Our CDATA terminator inside their CDATA block means their 
logs are no longer valid XML and the server would crash.

This only happened if our XML tests failed - so we could kind of live 
with it. Then we added some tests that take down the local network 
connector (and reconnect it afterwards) to check that Resolver One 
doesn't crash when this happens in the middle of a database transaction. 
Unfortunately although it doesn't kill Resolver it did kill the local 
CC.NET client. This is the point at which we switched to our own 
homebrew system.

Michael

> We replaced it with a homegrown Python distributed build system. :-) (So 
> none of the above...)
>
> At one point our continuous integration was a 130 line Python script (an 
> SVN post commit hook would touch a file the Python script was watching 
> to alert it that a new checkin had been made. After a while we just ran 
> tests in a continuous loop anyway not waiting for a new checkin - just 
> always doing a fresh checkout of head every loop. Then we added the 
> ability to distribute tests across multiple machines with a central web 
> app to display the status of runs and control them; so uhm... it's grown 
> a bit since the start).
>
> Michael
>
>   
>> buildbot
>>
>> plus pony-build as a different (and differently problematic, I'm afraid)
>> way of doing things.
>>
>> I don't get the sense that bitten is used terribly much, but I'm willing
>> to change my mind if I get many howls of protest.
>>
>> Anything else that people think I should look at?
>>
>> tnx,
>> --titus
>>   
>>     
>
>
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog





More information about the testing-in-python mailing list