Malgré une concurrence accrue, Jenkins reste l’un des serveurs d’intégration continue les plus populaires. Il a été créé lors de la tristement célèbre scission de la communauté Hudson, qui s’est produite après que le géant des logiciels Oracle a pris le contrôle de Hudson en open-source, dans un geste qui a enflammé la communauté des développeurs et enflammé Internet avec un débat animé.
La bonne nouvelle pour les développeurs du monde entier qui croient en l’importance de garder les logiciels à code source ouvert hors des mains des grandes entreprises est que dans la bataille subséquente Hudson contre Jenkins, c’est Jenkins qui a été victorieux.
Une partie de la raison derrière cela était le simple nombre de superbes plugins Jenkins qui ont été développés par la communauté Jenkins. À l’heure actuelle, Jenkins compte plus de 1 500 plugins qui aident les développeurs à automatiser de grandes parties du développement de projets. Ces plugins peuvent aider à des tâches allant de l’aide à la livraison continue, au transfert de fichiers d’un projet à l’autre, à l’affichage des projets Jenkins dans JIRA, et ainsi de suite.
Puisque chacun de ces plugins résout différents problèmes, il n’est pas facile de choisir les meilleurs plugins Jenkins. Donc, plutôt que de susciter la controverse, dans cet article, je vise à détailler certains des plugins les plus utiles qui aident les développeurs à gagner du temps ainsi qu’à rendre leur vie plus facile.
Afin d’élargir l’attrait de cet article, j’ai choisi un mélange de plugins, dont certains intéresseront les développeurs individuels et d’autres seront utiles aux grandes équipes de dev.
- Job DSL
Un problème que beaucoup de développeurs qui s’appuient sur Jenkins pour travailler sur plusieurs jobs auront rencontré est de devoir configurer de manière répétée chaque nouveau job qu’ils démarrent. Cela est non seulement très chronophage (si l’on considère que de nombreux programmeurs à temps plein travaillent sur des centaines de jobs par an), mais peut aussi vraiment rendre leur travail monotone.
Le plugin Job DSL de Jenkins permet aux programmeurs d’utiliser Groovy pour définir les jobs et configurer un ensemble commun d’éléments pour eux. Le plugin maintient ensuite ces scripts et met à jour automatiquement les informations sur les jobs. Cela permet aux programmeurs de créer des modèles standardisés en utilisant le langage spécifique au domaine (DSL), ce qui rend la mise en place de nouveaux projets un jeu d’enfant.
2. Plugin Job Generator
Pour les chefs de projet et les équipes de dev qui sont impliqués dans le développement de projets à grande échelle, le suivi de la progression des travaux peut être un cauchemar au mieux. Le plugin Jenkins Job Generator permet aux chefs de projet en charge d’un pipeline Jenkins particulier d’autoriser les développeurs de leur équipe à créer de nouveaux modèles de travail qui peuvent ensuite être utilisés pour démarrer de nouveaux projets/branches de développement.
Bien qu’il soit possible de le faire manuellement, une fois de plus cette tâche peut prendre beaucoup de temps, surtout si votre projet comporte plusieurs pipelines. L’avantage du plugin Job Generator par rapport au plugin Job DSL ci-dessus est qu’il ne nécessite pas que les programmeurs connaissent Groovy.
3. Plugin Performance
C’est un outil vraiment cool avec lequel les développeurs peuvent jouer. Il permet aux développeurs de capturer les rapports de toute une série d’outils de test qui incluent JUnit, JMeter, Lago et Taurus de Twitter. Vous pouvez visualiser les informations relatives aux performances de votre projet dans Jenkins via des diagrammes et des graphiques. Il s’agit d’un excellent exemple de plugin graphique Jenkins haut de gamme.
4. GitHub/GitLab Pull Request Builder
Ce plugin Git très populaire pour Jenkins permet aux développeurs d’automatiser facilement la révision du code. Lors de l’initiation d’une demande de pull, le plugin récupérera la source et les résultats de la construction afin que les développeurs puissent rapidement voir si leur code est correct.
Cet excellent plugin permet également aux développeurs de lancer la fusion automatique à condition que le code passe la révision.
5. Plugin JIRA
Lancé en décembre 2016, le plugin JIRA fait à peu près ce qu’il dit sur la boîte. Il permet aux développeurs d’intégrer JIRA dans Jenkins. De nombreuses équipes de développement utilisent beaucoup JIRA, donc le fait de pouvoir visualiser Jenkins à travers JIRA aide à rationaliser le processus de développement.
6. Plugin Kubernetes
Pour les équipes de développement qui exécutent plusieurs projets en même temps, Jenkins peut parfois être frustrant car il n’offre pas vraiment une grande évolutivité du serveur. Ce problème est résolu par le plugin Kubernetes qui permet à ces développeurs utilisant Kubernetes d’automatiser le processus de mise à l’échelle de l’exécution des esclaves Jenkins dans l’environnement Kubernetes.
Pour ces développeurs qui utilisent Docker Swarm, alors le plugin Jenkins Self-Organizing Swarm Modules vous permettra d’ajouter l’évolutivité à Jenkins de la même manière. Une fois installées, les deux versions vous permettront de poursuivre votre travail Jenkins sans avoir à vous soucier des problèmes d’évolutivité.
7. Plugin Build Pipeline
Alors que l’intégration continue est un excellent moyen de développer des projets, elle lance également un certain nombre de défis aussi. Garder la trace de tous les aspects de la progression des travaux, y compris l’assurance qualité, peut être un véritable défi lorsqu’il s’agit de projets complexes à plusieurs niveaux.
Le plugin Build Pipeline de Jenkins permet aux gestionnaires de projet de créer une chaîne de travaux connectés afin qu’ils puissent obtenir une image beaucoup plus claire de toutes les étapes du pipeline du projet. Le plugin permet aux gestionnaires de décider des étapes qui peuvent être automatisées ou qui nécessitent une intervention manuelle. Ce superbe plugin permet vraiment aux développeurs de prendre le contrôle total de leurs projets, ce qui explique pourquoi il est utilisé par tant d’équipes de développement logiciel.
8. SCM Sync Configuration Plugin
La perte de données de configuration a empêché plus d’un chef de projet de dormir. Non seulement cela prend du temps à réparer, mais c’est aussi entièrement évitable. De la même manière que le code peut être sauvegardé dans des dépôts, avec l’aide de ce plugin pratique, les fichiers de configuration de Jenkins peuvent l’être aussi.
Ce plugin de configuration SCM Sync permet une sauvegarde automatisée des fichiers de configuration dans un dépôt SCM. Non seulement cela, mais ce plugin suivra également toutes les modifications donnant ainsi aux gestionnaires une vue claire de toutes les altérations. C’est un outil de sauvegarde Jenkins populaire que la boîte à outils de tout développeur Jenkins devrait contenir.
9. Jenkins Maven plugin
Maven est très apprécié pour fournir une disposition de construction de projet standard facile à utiliser. Cela aide les développeurs à gagner du temps au début des projets en leur permettant de sauter directement dans le grand bain et de ne pas avoir à se soucier de cet aspect de la familiarisation avec le projet.
Ce plugin permet à Jenkins de surveiller les constructions Maven pour permettre l’archivage automatique des rapports et aider aux constructions parallèles ou incrémentielles de modules, etc. Il est facile à mettre en place et ne nécessite pas beaucoup de configuration de Jenkins.
10 . Jenkins Subversion plugin
Avec un très grand nombre de développeurs utilisant encore Apache Subversion, il y avait un besoin impérieux d’un plugin Jenkins pour intégrer les deux. Ce plugin surveillera les changements et déclenchera de nouvelles constructions lorsque cela est nécessaire, ainsi que la mise à jour automatique de l’espace de travail afin qu’il soit prêt à démarrer la nouvelle construction.