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 ?
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
- 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
Commentaires
[…] projet PHP est hébergé sur GitHub, et vous avez mis en place de l’intégration continue avec Travis-CI. Par contre, votre seul moyen actuellement de voir le taux de couverture de vos […]
[…] ce que Travis-CI est activé pour votre projet […]
[…] faciliter la vie en intégrant de lui-même tous les outils d’inspection que l’on aussi mettre en place soi-même via Travis-CI. Il vous permettra de recevoir une note globale à votre projet vous permettant de voir si chaque […]
[…] nous l’avons vu précédemment, il est possible d’assurer la qualité de votre projet PHP via Travis-CI. Mais comment faire en local sans Internet ? Phing est la solution pour lancer des […]
Ajouter un commentaire