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é.
|
|
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.
|
|
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.
|
|
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
|
|
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