RootsLabs

More than a tool ! GitHub Google+ LinkedIn RSS

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

Progi1984 - Commentaires (4)

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

Commentaires

1. RootsLabs » Utiliser Coveralls avec Github & Travis dans un projet PHP, le 7 avril 2014 à 10:34

[…] 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 […]

2. RootsLabs » Publier automatiquement une PHPDoc sur GitHub avec Travis CI, le 5 mai 2014 à 10:30

[…] ce que Travis-CI est activé pour votre projet […]

3. RootsLabs » Utiliser Scrutinizer avec Github & Travis dans un projet PHP, le 8 novembre 2017 à 09:31

[…] 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 […]

4. RootsLabs » Automatiser vos tâches sur un projet PHP avec Phing, le 6 juin 2018 à 13:21

[…] 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

Commentaire :