[dev] Continuous Integration - Hudson / Cruiscontrol

Gunnar Wrobel p at rdus.de
Mon Aug 30 03:24:39 UTC 2010


Quoting Chuck Hagenbuch <chuck at horde.org>:

> Quoting Gunnar Wrobel <p at rdus.de>:
>
>>> Definitely keep us posted; I'd love to get whichever system we
>>> settle on up and running on dev.horde.org.
>>
>> Okay, I though this would take two weeks and now its four months
>> later. Anyhow...
>>
>> I settled on Hudson now. This seems to be the favored solution by many
>> PHP projects at the moment. After comparing it to phpUnderControl I
>> can ensure you that it is indeed much easier to handle and way more
>> flexible. So this is the only solution I would be able to install on
>> dev.horde.org now.
>>
>> With the stuff I added to Horde_Element and php-hudson-tools
>> (http://github.com/wrobel/php-hudson-tools) recently a Hudson based
>> setup becomes easy.
>>
>> Would you like me to setup up another demo installation at one of my
>> servers? Or should I try to get it setup on something *.horde.org?
>
> I've added ci.horde.org pointing to simon (aka dev.horde.org). What  
> do you need to get it set up? :)

Over the weekend Chuck and Ben helped me getting the basics for the  
setup. So far the dependencies I identified were Java (Sun JDK), Ant,  
PHP, PEAR, and PHP xdebug. As far as I can tell only the last one is  
currently still missing from the machine. And it might be good to set  
the default timezone of the server in php.ini as this is currently  
unset and results in the notorious date/time warning.

I currently installed Hudson locally in my account. It is available at  
http://dev.horde.org:8080

There are two jobs - php-hudson-tools and horde - which are providing  
the basis of the other package oriented jobs.

php-hudson-tools delivers a PEAR environment of tools required for the  
different analysis types (PEAR, PHPUnit, PMD, pcd, PHP documentor, PHP  
CodeSniffer, and some other stuff I'm probably forgetting at the  
moment). The job is based on one of my repositories in github  
(http://github.com/wrobel/php-hudson-tools). It contains the tools as  
*.tgz files and thus provides a stable basis for the CI setup.

horde is just a git checkout of our horde repository and has no  
additional functionality. The code for the other jobs is copied from  
there.

I added the jobs for two packages now: "Autoloader" and "Itip". Both  
are green on my local installation. On dev.horde.org they are  
currently red because of the xdebug and timezone problems mentioned  
above. But you should already be able to get a feeling for the way  
this will look like. Many of the metrics are already being generated.

Once the two basic jobs are working I'd start adding more packages/jobs.

I commited the basics of the setup in the horde-support repository  
under "ci-hudson". I'm not yet certain you can simply check this out  
and get the same setup we have under dev.horde.org:8080 by simply  
running "make" in there - but that is the eventual goal.

I guess we still have to see if the whole setup is sound or not. I'm  
open to all suggestions.

Cheers,

Gunnar

>
> -chuck
>
> -- 
> Horde developers mailing list - Join the hunt: http://horde.org/bounties/
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: dev-unsubscribe at lists.horde.org
>







More information about the dev mailing list