Jenkins
Jenkins est un serveur d'intégration continue Open Source extensible et disposant de nombreux plugins (plus de 400) permettant de mettre en œuvre les pratiques d'Intégration Continue.
Typiquement, Jenkins exécute de manière continue la construction (build) des projets : il se connecte au gestionnaire de versions, récupère les sources du projet et exécute les directives de fabrication du logiciel (compilation, assemblage, tests, packaging, ...). Les jobs constituant les builds peuvent être exécutés sur le serveur Jenkins lui-même ou répartis sur plusieurs machines distantes. Jenkins conserve l'historique de toutes les exécutions des jobs et peut notifier par mail ou par RSS en cas erreur.
De manière plus avancée et grâce à ses plugins, Jenkins offre également des possibilités d'orchestration des builds, de différents types de tests, d'analyse statique de qualité de code et des déploiements automatisés.
Ce sont les plugins de Jenkins qui permettent d'enrichir ses fonctionnalités :
- Intégration avec différents gestionnaires de versions
- Intégration avec différents outils de fabrication
- Intégration avec différents outils de suivi d'incidents ou de bogues
- Exécution de scripts à distance par SSH
- Transfert de fichiers par SCP ou FTP
- Transfert d'artefacts vers un repository
- Exécution d'outils de contrôles de qualité de code
- Exécution d'outils de tests d'intégration, de performance, fonctionnels
Jenkins permet une mise en œuvre de l'intégration continue adaptée à plusieurs environnements de développement grâce aux plugins proposant l'intégration d'une large palette d'outils de développement.
Jenkins est particulièrement adapté à l'intégration continue de projets Java mais supporte aussi d'autres langages :
Jenkins dispose notamment de plugins d'intégration vers les gestionnaires de versions dont Subversion, CVS, Git, ClearCase, Visual Source Safe, Team Foundation Server, Synergy, Mercurial, Darcs, Bitkeeper, Bazaar ,...
Parmi les outils de builds, Jenkins propose en particulier des plugins d'intégration avec Maven, Ant, Ivy, Gradle, Gnat, Phing, Make, CMake, ...
En terme de tests, Jenkins dispose de plugins permettant de publier ou d'analyser les rapports de tests de diffférents outils et, pour certains, d'exécuter lui-même les tests. Parmi ces outils on trouve JUnit, TestNG, Concordion, Fitnesse, CPPTest, Gallio, MBUnit, Grinder, JSUnit, NUnit, JMeter, Canoo, Selenium, ...
Concernant les forges ou les gestionnaires d'incidents, Jenkins propose des plugins offrant pour certains des fonctionnalités avancées d'intégration avec Trac, Mantis, Jira, TeamForge, RedMine, Bugzilla, ...
La liste de tous les plugins d'intégration existants peut être consultée sur https://wiki.jenkins-ci.org/display/JENKINS/Plugins.
Dans le cadre de l'industrialisation de ses développements Java, la DSI de l'Inra utilise le serveur d'intégration continue Jenkins intégré avec Maven, Apache Archiva et Sonar.
Même si de nombreux langages sont supportés, la richesse de Jenkins se situe essentiellement autour du développement Java.
Commentaires
Jenkins User Conference Paris - Tuesday, April 17, 2012
Plus d'information : voir http://www.cloudbees.com/juc2012.cb
et pour le programme : http://www.cloudbees.com/jenkins-user-conference-2...