Jenkins : Mise en place d'un outil d'intégration continue
Software version | 1.447 |
---|---|
Operating System | Debian 7 |
Website | Jenkins |
Last Update | 12/04/2013 |
Others |
1 Introduction
Jenkins est un outil open source d'intégration continue, fork de l'outil Hudson après les différends entre son auteur, Kohsuke Kawaguchi, et Oracle. Écrit en Java, Jenkins fonctionne dans un conteneur de servlets tel qu’Apache Tomcat, ou en mode autonome avec son propre serveur Web embarqué. Il s'interface avec des systèmes de gestion de versions tels que CVS et Subversion, et exécute des projets basés sur Apache Ant et Apache Maven aussi bien que des scripts arbitraires en shell Unix ou batch Windows. Les générations de projets peuvent être initiées par différents moyens, tels que des mécanismes de planification similaires au cron, des systèmes de dépendances entre générations, ou par des requêtes sur certaines URL spécifiques. Dernièrement, Jenkins est devenue une alternative populaire à l'outil de référence CruiseControl. Le 11 janvier 2011, une proposition pour renommer Hudson a été annoncée afin d'éviter des problèmes avec un éventuel enregistrement (marque déposée) du nom par Oracle. Après l'échec des négociations avec Oracle, un vote en faveur du renommage a été entériné le 29 janvier 2011.
Nous allons voir ici comment mettre en place un serveur Jenkins qui va contrôler un serveur Selenium pour des tests unitaires sur une application en PHP de type Limesurvey.
2 Installation
Pour la partie installation, c'est facile :
aptitude |
aptitude install jenkins nginx |
Vous noterez que nous mettons un serveur Nginx en frontale pour renvoyer les requêtes vers Jenkins et absorber la charge des requêtes.
3 Configuration
3.1 Nginx
Pour Nginx, nous allons donc utiliser la fonction reverse proxy pour rediriger le flux :
Adaptez ces lignes suivant votre configuration.
Puis nous activons ceci par défaut :
rm -f /etc/nginx/sites-enabled/default ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/ |
Redémarrez ensuite Nginx pour avoir l'accès via http://jenkins-server