read http://jenkins-php.org/
#!/bin/bash
host="http://jenkins.domain.tld:8080"
wget $host/jnlpJars/jenkins-cli.jar
java -jar jenkins-cli.jar -s $host install-plugin checkstyle
java -jar jenkins-cli.jar -s $host install-plugin cloverphp
java -jar jenkins-cli.jar -s $host install-plugin dry
java -jar jenkins-cli.jar -s $host install-plugin htmlpublisher
java -jar jenkins-cli.jar -s $host install-plugin jdepend
java -jar jenkins-cli.jar -s $host install-plugin plot
java -jar jenkins-cli.jar -s $host install-plugin pmd
java -jar jenkins-cli.jar -s $host install-plugin violations
java -jar jenkins-cli.jar -s $host install-plugin xunit
java -jar jenkins-cli.jar -s $host install-plugin phing
java -jar jenkins-cli.jar -s $host safe-restart |
#!/bin/bash
pear upgrade PEAR
pear config-set auto_discover 1
pear install pear.phpqatools.org/phpqatools pear.netpirates.net/phpDox |
cd $JENKINSHOME/jobs
git clone git://github.com/sebastianbergmann/php-jenkins-template.git php-template
chown -R jenkins:nogroup php-template/ |
in $JENKINSHOME/jobs/$PROJECT/workspace/build.xml for phing
<project name="project" default="build" basedir=".">
<property name="basedir" value="${project.basedir}" />
<property name="source" value="${basedir}/src"/>
<target name="clean" description="Clean up and create artifact directories">
<delete dir="${basedir}/build/api"/>
<delete dir="${basedir}/build/code-browser"/>
<delete dir="${basedir}/build/coverage"/>
<delete dir="${basedir}/build/logs"/>
<delete dir="${basedir}/build/pdepend"/>
<mkdir dir="${basedir}/build/api"/>
<mkdir dir="${basedir}/build/code-browser"/>
<mkdir dir="${basedir}/build/coverage"/>
<mkdir dir="${basedir}/build/logs"/>
<mkdir dir="${basedir}/build/pdepend"/>
</target>
<target name="phpunit" description="Run unit tests using PHPUnit and generates junit.xml and clover.xml">
<exec logoutput="true"
command="phpunit --configuration=${basedir}/app/phpunit.xml.dist --log-junit=${basedir}/build/logs/junit.xml --coverage-clover=${basedir}/build/logs/clover.xml" />
</target>
<target name="parallelTasks" description="Run the pdepend, phpmd, phpcpd, phpcs, phpdoc and phploc tasks in parallel using a maximum of 2 threads.">
<phingcall target="pdepend"/>
<phingcall target="phpmd"/>
<phingcall target="phpcpd"/>
<phingcall target="phpcs"/>
<phingcall target="phpdoc"/>
<phingcall target="phploc"/>
</target>
<target name="pdepend" description="Generate jdepend.xml and software metrics charts using PHP_Depend">
<exec logoutput="true"
command="pdepend --jdepend-xml=${basedir}/build/logs/jdepend.xml --jdepend-chart=${basedir}/build/pdepend/dependencies.svg --overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg ${source}" />
</target>
<target name="phpmd" description="Generate pmd.xml using PHPMD">
<exec logoutput="true" spawn="true"
command="phpmd ${source} xml codesize,design,naming,unusedcode --reportfile ${basedir}/build/logs/pmd.xml" />
</target>
<target name="phpcpd" description="Generate pmd-cpd.xml using PHPCPD">
<exec logoutput="true"
command="phpcpd --log-pmd ${basedir}/build/logs/pmd-cpd.xml ${source}" />
</target>
<target name="phploc" description="Generate phploc.csv">
<exec logoutput="true"
command="phploc --log-csv ${basedir}/build/logs/phploc.csv ${source}" />
</target>
<target name="phpcs" description="Generate checkstyle.xml using PHP_CodeSniffer">
<exec logoutput="true"
command="phpcs --report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}" />
</target>
<target name="phpdoc" description="Generate API documentation using PHPDocumentor">
<exec logoutput="true"
command="phpdoc -d ${source} -t ${basedir}/build/api" />
</target>
<target name="phpcb" description="Aggregate tool output with PHP_CodeBrowser">
<exec logoutput="true"
command="phpcb --log ${basedir}/build/logs --source ${source} --output ${basedir}/build/code-browser" />
</target>
<target name="build" depends="clean,parallelTasks,phpunit,phpcb"/>
</project> |
now run phing in $JENKINSHOME/jobs/$PROJECT/workspace/