Intégration Continue d’un projet PHP avec Travis CI

Mettre en place l’intégration continue dans un projet PHP permet d’identifier les problèmes et d’assurer une qualité au code. Dans notre cas, nous allons mettre en place via Travis-CI l’intégration continue d’un projet PHP. Comment allons nous faire cela ?

Travis

Installation

Il vous faut d’abord vous connecter sur Travis-CI via votre compte GitHub : https://travis-ci.org.

Ensuite, il faut aller sur la page “Accounts“. Arrivé sur cette page, il faut passer un projet de OFF vers ON.

A ce moment, votre projet est connecté à Travis-CI mais n’à lancer aucune intégration.

Mise en place

Pour lancer une intégration, il faut commiter un fichier .travis.yml à la racine de votre projet.
Désormais à chaque commit sur ce repository, un build se lancera.

Le fichier .travis.yml

La partie “language”

Cette partie permet de définir le langage pour le build ainsi que les différentes versions langages pour lesquels chaque build sera exécuté.

language: php
php:
  - 5.3
  - 5.4
  - 5.5

La partie “before_script”

Cette partie permet de définir les différents scripts à lancer avec de lancer véritablement le build en lui-même :

  • Téléchargement et Installation de Composer
  • Installation de PHP CodeSniffer via Pyrus
  • Téléchargement du PHAR de PHP Copy/Paste Detector
  • Installation de Imagick (pré-requis), suivi de l’installation de PHP Mess Detector
  • Téléchargement du PHAR de PHPLOC

phpenv rehash permet d’actualiser le path et trouver les exécutables nouvellement installés.

before_script:
  ## Composer
  - curl -s http://getcomposer.org/installer | php
  - php composer.phar install
  ## PHP_CodeSniffer
  - pyrus install pear/PHP_CodeSniffer
  - phpenv rehash
  ## PHP Copy/Paste Detector
  - curl -o phpcpd.phar https://phar.phpunit.de/phpcpd.phar
  ## PHP Mess Detector
  - pear config-set preferred_state beta
  - printf "\\n" | pecl install imagick
  - pear channel-discover pear.phpmd.org
  - pear channel-discover pear.pdepend.org
  - pear install --alldeps phpmd/PHP_PMD
  - phpenv rehash
  ## PHPLOC
  - curl -o phploc.phar https://phar.phpunit.de/phploc.phar

La partie “script”

Cette partie permet de lancer vraiment le build.
Chaque exécutable retournera 0 en cas de succès et – souvent – 1 en cas d’erreur.

script:
  ## PHP_CodeSniffer
  - phpcs --standard=PSR1 src/
  - phpcs --standard=PSR2 src/
  ## PHP Copy/Paste Detector
  - php phpcpd.phar --verbose src/
  ## PHP Mess Detector
  - phpmd src/ text codesize,unusedcode,naming,design
  ## PHPLOC
  - php phploc.phar src/

La partie “notifications”

Cette partie permet de définir comment Travis CI nous informera du résultat du build.
Différentes notifications sont possibles :

  • Campfire
  • Email
  • Flowdock
  • HipChat
  • IRC
  • Webhook

Lien : Doc Travis-CI

notifications:
  email:
    - email@tld.com

Conclusion

Grâce à Travis CI, nous avons pu mettre un contrôle qualité basique sur notre projet.
Les plus sérieux verront qu’ils manquent des tests unitaires via PHPUnit ou Atoum, et, dans le cas d’applications web, de tests fonctionnels via Selenium.
Lien : Doc Travis-CI : PHPUnit & Atoum
Lien : Doc Travis-CI : Tests navigateurs en mode GUI & Headless

Cet article Intégration Continue d’un projet PHP avec Travis CI est apparu en premier sur RootsLabs.

Vus : 1357
Publié par Progi1984 : 78