Springe direkt: zur Navigationzum Inhaltzur Sidebar

You may have stumbled upon http://jenkins-php.org/ which features a “Template for Jenkins Jobs for PHP Projects”. This is yet another great project by Sebastian Bergmann in the area of PHP software quality (assurance).

You may also have been somewhat demotivated by the “info glut” provided on jenkins-php.org at first glance (config. snippets, tools, install instructions, dependencies). I was, anyway :-)

This is where The “PHP Continuous Integration with Jenkins” playground hooks in. First, this tiny project composes the various required config. files with (absolutely) basic settings.

Now, you just have to follow the instructions on required Jenkins plugins, required PHP tools, and how to use the job template given on jenkins-php.org.

Second, this project adds a dummy class PhpCiPlayground as well as a dummy unit test for PhpCiPlayground::getFoo()
which releases you from providing some sample code residing in a repository just to get a quick impression of how all this feels.

After having the PHP QA tools and corresponding Jenkins plugins up running, just install the Jenkins git plugin, enter https://github.com/joschmidt/php-ci-playground.git in the job’s source code management section*, and finally run a build job.

You will receive the full arsenal of reports, an API doc., and a code browser within seconds:

Feel free to fork this – it’s a playground!

* If you have trouble with checking out from this git repository try “Skip internal tag” in the SCM section, e.g. see http://stackoverflow.com/questions/11122913/jenkinsgit-tell-me-who-you-are-error-why-does-it-need-to-tag.

There are numerous “micro frameworks” in PHP available (I won’t provide a definition of “micro framework”, a good starting point is here).

For choosing the right one objective and subjective criteria which implicitly represent my requirements are needed. Some like performance have to be applied to scenarios in order to get results (=answers) at all; the idea is to accomplish two tasks:

  1. A simple one: Routing a request to a plain “Hello World!” output.
  2. A more complex one: Routing a request to a dedicated controller, performing a DB operation, and displaying the output using a template (if templating is available).

Find the list of criteria in this Google Doc. Notice: This is work in progress.

Thanks for inspiration:

Want to re-share this knowledge. After upgrading Ubuntu from 11.04 to 11.10 (yes, I’m delayed) wifi didn’t work anymore on Asus EeePC with Broadcom STA wireless driver installed.

Found this which saved my day: http://ubuntuforums.org/showthread.php?t=1859749

echo "blacklist bcma" | sudo tee -a /etc/modprobe.d/blacklist.conf

That’s all. HTH, and thx to the great people out there!

Nov18

Executing and chaining bash commands in ant

von Johannes Schmidt

I was not happy with the search results on this topic; so here’s my tiny contribution:

<?xml version="1.0" encoding="UTF-8"?>

<project name="Myproject" default="build">

 <target name="build" depends="bashcommands"/>

 <target name="bashcommands" description="Executing and chaining bash commands.">
 <echo>Executing and chaining some bash commands.</echo>
 <exec executable="bash" failonerror="true" osfamily="UNIX">
 <arg value="-c"/>
 <arg value="rm -f bar.txt; touch foo.txt; mv foo.txt bar.txt"/>
 </exec>
 </target>

</project>
Creative Commons License
This work is licensed under a
Creative Commons Attribution-Share Alike 2.5 License.
t8d blogged mit WordPress