PHP - Intégration continue avec Jenkins

1 1 1 1 1 1 1 1 1 1 Rating 2.38 (4 Votes)
Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn

L'intégration continue apporte de nombreux avantages tels que l'automatisation de taches ou encore pouvoir délivrer une version fonctionnelle de votre application régulièrement. Jenkins est un outil open source d'intégration continue, fork de l'outil Hudson après les différents entre son auteur, Kohsuke Kawaguchi, et Oracle.

Installation de Jenkins sous Debian 

su
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -
echo "deb http://pkg.jenkins-ci.org/debian binary/" >> /etc/apt/sources.list
apt-get update
apt-get install jenkins

Lancer Jenkins

Pour lancer Jenkins, il suffit de se connecter à l'adresse http://localhost:8080.

Si vous avez installé comme moi Jenkins à l'aide d'une VM sous VirtualBox et que vous utilisez une redirection via le port 9090. Lancer Jenkins en vous connectant à l'adresse http://localhost:9090

72-php-integration-continue-avec-jenkins-installation

La version utilisée de Jenkins est la 1.548.

Mise à jour des plugins

Avant tout chose, il faut mettre à jour les plugins. Pour cela aller dans "Administrer Jenkins > Gestion des plugins"

72-php-integration-continue-avec-jenkins-maj-plugins

Sélectionner les plugins puis cliquer sur "Installer sans redémarrer".

Cliquer sur "Rafraichissement automatique" (en haut à droite). Ensuite cocher "Redémarrer Jenkins quand l'installation est terminée et qu'aucun job n'est en cours".

72-php-integration-continue-avec-jenkins-maj-plugins-redemarrer

Une fois que Jenkins a redémarré, cliquer sur "Administrer Jenkins".

72-php-integration-continue-avec-jenkins-maj-plugins-redemarrer-ok

Sécuriser Jenkins

Une fois avoir installer et mise à jour les plugins Jenkins, il faut maintenant le sécuriser. Cliquer sur "Configuration de la sécurité"

 72-php-integration-continue-avec-jenkins-securite

J'ai configuré au plus simple. Cliquer sur "Activer la sécurité" puis dans "Contrôle de l'accès" activer "Base de données des utilisateurs de Jenkins", "Autoriser les utilisateurs à s'inscrire" et "Tout le monde a accès à toutes les fonctionnalités" pour finir cliquer sur le bouton "Enregister". Vous pouvez bien entendu créer votre propre politique de sécurité.

72-php-integration-continue-avec-jenkins-securite-configurer

Installer des plugins

Pour installer des plugins dont vous avez besoin, cliquer sur "Administrer Jenkins > Gestion des plugins". 

72-php-integration-continue-avec-jenkins-plugins-installer

Chercher et installer les plugins ci-dessous :

  • Checkstyle Plug-in
  • DRY Plugin
  • Git Client Plugin
  • Green Balls
  • HTML Publisher plugin
  • Clover PHP Plugin
  • Git Chooser Alternative Plugin
  • JDepend Plugin
  • Phing Plugin
  • Violation Columns Plugin
  • PHP Plugin
  • Measurement Plots Plugin
  • Plot plugin
  • PMD Plugin
  • Analysis Collector Plugin
  • Static Code Analysis Plug-ins
  • xUnit plugin

Les outils PHP

su
# installer PEAR et PHP
apt-get install php-pear php5-dev
# upgrate et l’auto_discover actif
pear upgrade-all
pear config-set auto_discover 1
# installer PHPUnit
# PHPUnit permet d’écrire des tests facilement mais aussi de lancer facilement les tests et analyser les résultats qui en découlent.
pear channel-discover pear.phpunit.de
pear install --alldeps phpunit/PHPUnit
# installer PHP Copy/Paste Detector
# phpcpd est un détecteur de Copier/Coller pour du code écrit en PHP. Il permet de scanner un projet en PHP pour trouver du code dupliqué.
pear install phpunit/phpcpd
# installer PHP Documentor
# phpdoc est un générateur de documentation basé sur les commentaires que vous laissez dans le code source de votre application PHP.
pear channel-discover pear.phpdoc.org
pear install phpdoc/phpDocumentor
# PHP Mess Detector
# phpmd permet de scanner du code écrit en PHP pour trouver des problèmes potentiels comme d’éventuels bugs, du code non utilisé, du code non optimisé et des expressions trop compliquées.
pear channel-discover pear.phpmd.org
pear install phpmd/PHP_PMD
# installer PHP_CodeBrowser
# PHP_CodeBrowser est un navigateur de code source pour des fichiers PHP. Il possède une coloration syntaxique et une coloration spécifique pour les erreurs qui auraient été trouvées par un outil d’assurance qualité tel que PHPUnit et PHP_CodeSniffer.
pear install --alldeps phpunit/PHP_CodeBrowser
# installer PHPLOC
# phploc est un outil qui permet de mesurer rapidement la taille d’un projet PHP
pear install phpunit/phploc
# installer PHP_Depend
pear channel-discover pear.pdepend.org
pear channel-discover pear.phpmd.org
pear install pdepend/PHP_Depend
# PHP_CodeSniffer
# phpcs « tokenise » des fichiers PHP, JavaScript et CSS et détecte les violations d’un ensemble défini de normes de codages. C’est un outil essentiel au développement qui garantie que votre code reste propre et cohérent. De plus, il permet aux développeurs d’éviter des erreurs communes de syntaxe.
pear install --alldeps PHP_CodeSniffer
# installer PHP Dead Code Detector
# PHPDCD permet de scanner un projet PHP et de détecter les fonctions qui ne sont pas utilisées. Cela permet d’optimiser le code source de l’application en évitant d’éventuels ralentissement.
pear install pear.phpunit.de/phpdcd
# installer Phing
# Phing est à PHP ce que Ant est à Java...
pear channel-discover pear.phing.info
pear install --alldeps phing/phing

Installer le template Jenkins pour PHP

Une fois l'installation effectuée, vous devez créer un nouveau job. Mais avant cela, il faut installer le template PHP pour Jenkins. C'est un projet créé par Sebastian Bergmann qui permet de standardiser les jobs Jenkins pour PHP. 

wget http://localhost:8080/jnlpJars/jenkins-cli.jar
# installer les dépendances du template
java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin checkstyle cloverphp dry htmlpublisher jdepend plot pmd violations xunit
java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart
su
apt-get install curl
# installer le template
curl https://raw.github.com/sebastianbergmann/php-jenkins-template/master/config.xml | java -jar jenkins-cli.jar -s http://localhost:8080 create-job php-template
java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart

 72-php-integration-continue-avec-jenkins-template 

Le template est installé, mais vous aurez besoin de quelques outils PHP pour générer des artefacts pour Jenkins

Installer les outils PHP

Dans un premier temps, il faut installer un serveur LAMP. Un serveur LAMP est un serveur Web. Historiquement, l'acronyme « LAMP » fait référence aux quatre composantes d'un tel serveur Web :

  • Linux : le système d'exploitation constituant la base du système. Ici, il s'agit d'Ubuntu.
  • Apache : le serveur HTTP qui gère la communication avec le client.
  • MySQL : le système de gestion de base de données.
  • PHP : le langage de script utilisé pour générer les pages dynamiques.

 

 

Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn