Upgrade to Pro — share decks privately, control downloads, hide ads and more …

L'intégration continue avec Jenkins & Symfony2 (et behat)

L'intégration continue avec Jenkins & Symfony2 (et behat)

Comment configurer son interface Jenkins pour un projet Symfony2. Tuto s'adressant au personnes ayant des connaissances de bases sur Jenkins.

Bruno Nicolle

Bruno Nic

July 29, 2013
Tweet

Other Decks in Programming

Transcript

  1. Vérifications périodiques & après chaque commit du code source afin

    d'éviter la régression de l'application en cours de développement PHPMD : PHP Mess Detector Remontée de statistiques susceptibles de mettre en évidence des portions de code-source de qualité médiocre PHPCPD : PHP Copy Paste Detector Détection de portions de code dupliqué PHPLoc Collecte de statistiques du type : nombres de méthodes, nombres de classes, nombres de lignes de code… PHPDepend Génère le rapport des dépendances. PHPCS : PHP Code Sniffer Détecte les violations d'un ensemble de règles PHP. PHPUnit Lance chaque test unitaire et vérifie leur fonctionnalité. Template Jenkins : https://raw.github.com/CdWeb/jenkins-sf2-template/master/template/build.xml
  2. L'interface de Jenkins (http://localhost:8080/) Le but étant que la météo

    global du projet soit au soleil sachant que le code coverage, les tests et la stabilité du build entre en jeu
  3. Navigateur de code PHPCodeBrowser CodeBrowser reprend les différents résultats des

    tests présentés précédemment. Il permet notamment de naviguer dans le code source testé.
  4. Documentation du code avec PHPDoc Commenter pour mieux documenter, PHPDoc

    reprend l’ensemble des commentaires de classes, variables méthodes pour en faire une documentation complète (bootstrapée). La doc est régénérée après chaque build.
  5. Configuration de Jenkins Plusieurs plugins sont à installer via la

    gestion de plugins de Jenkins (/pluginManager) Si ce n'est pas fait, installer les dépendances : pear channel-discover pear.pdepend.org pear channel-discover pear.phpmd.org pear channel-discover pear.phpunit.de pear channel-discover pear.phpdoc.org pear channel-discover components.ez.no pear channel-discover pear.symfony.com pear channel-discover pear.netpirates.net pear install pdepend/PHP_Depend pear install phpmd/PHP_PMD pear install phpunit/phpcpd pear install phpunit/phploc pear install --alldeps phpunit/PHP_CodeBrowser pear install --alldeps phpunit/PHPUnit pear install phpdoc/phpDocumentor-alpha pear install PHP_CodeSniffer - Duplicate Code Scanner Plug-in - Checkstyle Plug-in - HTML Publisher plugin - Javadoc Plugin - Jenkins Clover PHP plugin - Jenkins JDepend Plugin - PMD Plug-in - JUnit Attachments Plugin
  6. Personnalisation de Jenkins - Le plugin Simple Theme Plugin permet

    d’ajouter sa couche de css et js pour personnaliser l’interface Jenkins (meilleur impression auprès des clients) - Le plugin Green Ball permet d’avoir des boulles verte à la place du bleu en cas de succès de build qui pourrait porter à confusion. -> - Le plugin Plot Plugin permet l'ajout de graphs Indiquant plusieurs stats concernant le code source.
  7. Personnalisation de Jenkins - Le plugin Jenkins Jabber notifier plugin

    permet l'envoi de notification via une messagerie instantané à chaque fin de build.
  8. Les tests Behat #Behat.yml ... jenkins: formatter: name: progress,junit,html parameters:

    output_path: ,build/behat,build/behat/behat.html extensions: Behat\MinkExtension\Extension: javascript_session: selenium2 browser_name: phantomjs base_url: 'http://symfony.localvm/app_dev.php'