Project

General

Profile

Actions

Jenkins

A Jenkins installation is available for Chamilo at http://testing.chamilo.org.

Installation of Jenkins PHP

Jenkins has been installed following (quite strictly) the instructions here: http://www.mimiz.fr/en/continuous-integration/set-up-continuous-integration-for-php-with-jenkins-on-debian/ and http://jenkins-php.org/ (in particular for the template).

The Jenkins server runs on port 8080.
The directory that was used for the installation is /home/ywarnier, so apparently any

java -jar jenkins-cli.jar -s http://localhost:8080 [something]

has to be launched from this directory.

I removed the PHPUnit call block from the build.xml file.

I then used this page: http://www.michaelpeacock.co.uk/blog/entry/jenkins-ci-an-introduction-for-php-developers to figure out how to run the build from the SimpleTest results, and modified the Chamilo tests/ directory to include the necessary scripts.
I had to

apt-get install xsltproc

in order to make the conversion from SimpleTest XML to JUnit XML.

Finally, in order to install a series of libraries and scripts that were normally not available, I used: https://gist.github.com/1729591

Several errors occurred when first launching the process. Between others:

[exec] PHP Fatal error:  Call to undefined method PHP_Depend_Code_ASTArguments::getType() in /usr/share/php/PHP/Depend/Code/AbstractCallable.php on line 300

...led me to hack the Depend library (line 297) to add a method_exist() check.

Then:

[exec] PHP Fatal error:  Maximum function nesting level of '8192' reached, aborting! in /usr/share/php/PHP/Depend/Code/ASTNode.php on line 425
[exec] PHP Stack trace:
[exec] PHP 1. {main}() /usr/bin/pdepend:0
[exec] PHP 2. PHP_Depend_TextUI_Command::main() /usr/bin/pdepend:78
[exec] PHP 3. PHP_Depend_TextUI_Command->run() /usr/share/php/PHP/Depend/TextUI/Command.php:676
[exec] PHP 4. PHP_Depend_TextUI_Runner->run() /usr/share/php/PHP/Depend/TextUI/Command.php:206
[exec] PHP 5. PHP_Depend->analyze() /usr/share/php/PHP/Depend/TextUI/Runner.php:331
[exec] PHP 6. PHP_Depend->_performAnalyzeProcess() /usr/share/php/PHP/Depend.php:314
[exec] PHP 7. PHP_Depend_Metrics_Coupling_Analyzer->analyze() /usr/share/php/PHP/Depend.php:593
[exec] PHP 8. PHP_Depend_Metrics_Coupling_Analyzer->_analyze() /usr/share/php/PHP/Depend/Metrics/Coupling/Analyzer.php:193
[exec] PHP 9. PHP_Depend_Code_Package->accept() /usr/share/php/PHP/Depend/Metrics/Coupling/Analyzer.php:213
[exec] PHP 10. PHP_Depend_Visitor_AbstractVisitor->visitPackage() /usr/share/php/PHP/Depend/Code/Package.php:338
[exec] PHP 11. PHP_Depend_Code_Function->accept() /usr/share/php/PHP/Depend/Visitor/AbstractVisitor.php:238
[exec] PHP 12. PHP_Depend_Metrics_Coupling_Analyzer->visitFunction() /usr/share/php/PHP/Depend/Code/Function.php:164
[exec] PHP 13. PHP_Depend_Code_AbstractCallable->getDependencies() /usr/share/php/PHP/Depend/Metrics/Coupling/Analyzer.php:282
[exec] PHP 14. PHP_Depend_Code_AbstractCallable->findChildrenOfType() /usr/share/php/PHP/Depend/Code/AbstractCallable.php:283
[exec] PHP 15. PHP_Depend_Code_ASTNode->findChildrenOfType() /usr/share/php/PHP/Depend/Code/AbstractCallable.php:216
[exec] PHP 16. PHP_Depend_Code_ASTNode->findChildrenOfType() /usr/share/php/PHP/Depend/Code/ASTNode.php:425
[exec] PHP 17. PHP_Depend_Code_ASTNode->findChildrenOfType() /usr/share/php/PHP/Depend/Code/ASTNode.php:425

...

The definition of the Mess Detecto was made with http://phpmd.org/documentation/creating-a-ruleset.html

Updated by Yannick Warnier about 7 years ago ยท 10 revisions