Speeding up PHP continuous integration build server on Hudson CI

SKYBRIREE

New Member
I'm trying to speed up my builds some and was looking for some thoughts on how to do so. I currently use \[code\]Hudson\[/code\] as a continuous integration server for a \[code\]PHP\[/code\] project.I use an \[code\]Ant\[/code\] build.xml file to do the build, using a file similar to Sebastian Bergmann's \[code\]php-hudson-template\[/code\]. At the moment, though (due to some weird problems with Hudson crashing otherwise), I'm only running \[code\]phpDocumentor\[/code\], \[code\]phpcpd\[/code\], and \[code\]phpUnit\[/code\]. \[code\]phpUnit\[/code\] does generate \[code\]Clover\[/code\] code-coverage reports, too.Here are some possible bottlenecks:[*]\[code\]phpDocumentor\[/code\]: Takes 180 seconds. There are some large included libraries in my project, such as \[code\]awsninja\[/code\], \[code\]DirectedEdge\[/code\], \[code\]oauthsimple\[/code\], and \[code\]phpMailer\[/code\]. I'm not sure that I really need to be developing documentation for these. I'm also not sure how to ignore whole subdirectories using my build.xml file.[*]\[code\]phpUnit\[/code\]: Takes 120 seconds. This is the only portion of the build that's not run as a \[code\]parallelTask\[/code\]. The more tests that get written, the longer this time will increase. Really not sure what to do about this, aside from maybe running multiple Hudson build slaves and doling out separate test suites to each slave. But I also have no idea how to go about that, either.[*]\[code\]phpcpd\[/code\]: Takes 97 seconds. I'm sure that I can eliminate some parsing and conversion time by ignoring those included libraries. Not sure how to do this in my build.xml file.[*]My server: Right now I'm using a single Linode server. It seems to get pretty taxed by the whole process.Any other possible bottlenecks you can think of I'll add to the list.What are some solutions for reducing my build time?
 
Back
Top