Jenkins and Yii - Continuous Integration

Has anyone had any luck with setting up Jenkins-ci (formerly Hudson-ci) with Yii projects?

if so, are you willing to share your build.xml and any of your configuration options?

Once I get it working to my satisfaction, I’ll share what I know.

maybe this could help

http://jenkins-php.org/

ty for trying. I’ve read over that site many times and have gotten much from it. There are just nuances that aren’t discussed in a clear enough manner for me to apply the whole process successfully. I’ve got a lot of it working. I just want, for example, not to have clover coverage test the Yii framework. Hoped someone else knew how to work around that. Or, the PHPPMD (Php Mess Detector), which rules to apply that make the most sense as they pertain to Yii.

I guess I should have made it clear that I have been researching and experimenting with this for days.

I’d just hoped that I wasn’t alone in the Yii community wanting to find/create best practices as they pertain to Yii and Jenkins usage.

edit: I spent a week in Goslar (near Hannover) in 1993. Beautiful area.

You are not alone… I recently started a new project with Yii, and I need to set up jenkins with yii in the next few days, and was doing a little research to have some references.

Have you made any progress? Any other site to have as reference?

Thanks!

have you guys reach a success point ?

I’ve been testing phpUndercontrol but got stuck

I’m now testing Hudson, I’m might try out Jenkins as well

whatever works will go

I also posted a question asking the communities point of view on CI

but got no answers

a set up tutorial would be great

can someone help ?

I am still working out some issues, but have Jenkins firing it’s processes when a change is made in version control (git). I’ve been caught up in other work lately and this is my back burner project. If you have a specific question, go for it, I’ll try to assist. What I have at the moment isn’t so far along that it’s ready to document.

I still need to learn how to

  1. exclude the yii framework from the code coverage modules

  2. make custom rules for the Mess Detector module

  3. create a slave on a Windows machine

3a) that will fire off a dependent build

3b) the dependent build will be executing Selenium testing if the initial build succeeded

That’s most of what I have remaining

This link was fairly close and helped

http://www.davegardner.me.uk/blog/tag/hudson/

"I’m now testing Hudson, I’m might try out Jenkins as well "

** Please note: Jenkins is just the newer version of Hudson

edit: Just figured out how to exclude Yii from code coverage

edited phpunit.xml, added the following

<filter>

    &lt;blacklist&gt;


        &lt;directory suffix=&quot;.php&quot;&gt;/var/lib/jenkins/jobs/yii/&lt;/directory&gt;


    &lt;/blacklist&gt;


&lt;/filter&gt;

Another thing I found handy was to exclude the extensions folder from PHPMD, PHPLOC, and PHPCPD by using parameters --exclude pathToExtensionsFolder

I was wasting my time trying to add that via Phing filesets… Painful

I just set this up during the day. Where do you get stuck?

Here is the target for phpunit in build.xml we used:


    <target name="phpunit" description="Run unit tests using PHPUnit and generates junit.xml and clover.xml">

	<exec executable="phpunit" failonerror="true">

	    <arg line="--configuration ${basedir}/webapp/protected/tests/phpunit.xml" />

	    <arg line="--log-junit ${basedir}/build/logs/junit.xml" />

	    <arg line="--coverage-clover ${basedir}/build/logs/clover.xml" />

	    <arg line="${basedir}/webapp/protected/tests/unit" />

	</exec>

    </target>



It was quite a pain to get all the elements up and running, but now Jenkins is continuously running our unit tests shortly after every commit and reporting the progress.

I am just in the process of setting something up also, but hope that the following reference will be of help.

Integrating PHP Projects with Jenkins

By: Sebastian Bergmann

Publisher: O’Reilly Media, Inc.

Pub. Date: September 22, 2011

Also, there is this project which I plan to investigate:

Hopefully we can use this forum to continue to discuss best practices for setting up Jenkins for Yii.

Sorry to dig up an old thread, but have any of you gotten further with Yii/Jenkins? Insights/examples much appreciated.

I started a new thread on this as I wasn’t aware of this. Hope it helps: http://www.yiiframework.com/forum/index.php/topic/50967-set-up-yii-with-jenkins-ci/