Jenkins est un serveur d’automatisation open-source largement utilisé pour le développement, les tests et le déploiement continus des applications. Il permet d’automatiser les tâches répétitives et de faciliter l’intégration du code au sein d’un projet, garantissant ainsi une meilleure productivité et une réduction des erreurs humaines. Avec une architecture modulaire et une grande quantité de plugins, Jenkins s’intègre facilement avec des outils populaires.
Qu'est-ce que le CI/CD ?

CI/CD pour « Continuous Integration / Continuous Delivry » ( intégration continue / déploiement continu) est une pratique de développement visant à automatiser les étapes du cycle de vie d’une application. Elle permet de réduire les erreurs humaines, d’accélérer les délais de livraison et d’améliorer la qualité des applications.
- L’intégration continue (CI) permet aux développeurs d’envoyer fréquemment du code dans un dépôt partagé. Jenkins s’assure automatiquement que chaque modification est compilée, testée et validée avant d’être intégrée au projet principal.
- Le déploiement continu (CD) une fois le code validé, il est automatiquement mis à disposition pour le déploiement, qu’il s’agisse d’un environnement de test, de préproduction ou de production.
Pourquoi utiliser Jenkins ?
Jenkins est très populaire pour automatiser les tâches répétitives et faciliter le travail des développeurs et des équipes DevOps. Voici les principales raisons qui font de Jenkins un choix incontournable :

Outil open-source et flexible
Jenkins est totalement open-source, ce qui signifie qu’il est gratuit et bénéficie d’une communauté active qui contribue constamment à son amélioration.
Son architecture modulaire repose sur des milliers de plugins qui permettent de l’adapter à n’importe quel besoin.

Automatisation et gain de temps
Jenkins permet d’automatiser l’ensemble du cycle de développement, du build initial jusqu’au déploiement final. Il peut exécuter des tâches complexes sans intervention humaine, ce qui permet aux équipes de se concentrer sur l’écriture du code et l’innovation plutôt que sur des processus manuels répétitifs.

Intégration continue et livraison continue (CI/CD)
Jenkins est l’un des outils les plus utilisés pour mettre en place des pipelines CI/CD. Ces pipelines permettent d’intégrer, tester et livrer du code plus rapidement et de manière plus fiable.

Compatibilité avec toutes les plateformes
Jenkins est multiplateforme. Il peut être installé localement, exécuté dans un conteneur Docker, déployé sur des serveurs on-premise ou hébergé dans le cloud. Cette flexibilité permet aux équipes de l’utiliser dans des infrastructures variées, quel que soit leur environnement de travail.

Gestion avancée des pipelines avec Jenkinsfile
Avec Jenkins, il est possible de définir les pipelines CI/CD sous forme de code grâce à un fichier appelé Jenkinsfile. Ce fichier permet de :
- Décrire précisément les étapes du pipeline (build, tests, validation, déploiement).
- Versionner et partager facilement la configuration du pipeline.
- Faciliter la collaboration entre les équipes DevOps et les développeurs.

Une communauté active et un support étendu
En tant que projet open-source mature, Jenkins dispose d’une immense communauté qui contribue à son amélioration et propose régulièrement des mises à jour et de nouveaux plugins.
Pour les entreprises ayant besoin d’un support avancé, plusieurs services tiers proposent également des solutions commerciales basées sur Jenkins.
Installation et configuration
Jenkins est un outil puissant mais simple à installer. Ce guide explique comment installer Jenkins sur Linux, ainsi que sa configuration initiale pour bien démarrer.
Installation
1. Tout d'abord, il est nécessaire d'ajouter le dépôt Jenkins et de mettre à jour les paquets :
sudo apt update && sudo apt install -y fontconfig openjdk-17-jre
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
2. L'installation de Jenkins se fait ensuite de la manière suivante :
sudo apt install -y jenkins
3. Démarrer le service Jenkins et vérifier son statut :
sudo systemctl start jenkins
sudo systemctl status jenkins
4. Accéder à son interface web :
Elle est disponible ici par défaut : http://localhost:8080.

Si vous préférez une installation via Docker, alors la commande est la suivante :
docker run -p 8080:8080 -p 50000:50000 -d --name jenkins jenkins/jenkins:lts
Configuration initiale
Lors du premier accès à Jenkins, un mot de passe initial sera demandé. Il est disponible via cette commande :
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
À noter que vous serez ensuite à même de créer de nouveaux utilisateurs et modifier le compte administrateur.
Ensuite, quelques plugins peuvent s’avérer indispensables, notamment :
Création du premier job
Dans l’interface Jenkins, sélectionnez New Job. Après lui avoir donné un nom, sélectionnez Projet Freestyle.
Ajoutez ensuite un dépôt dans Source code Management, par exemple https://github.com/dst-project.git
Ajoutez un simple script shell pour tester, par exemple :
echo "Build en cours..."
mvn clean package
Après avoir sauvegarder, cliquez sur Run build pour voir Jenkins effectuer les actions.
Pour conclure
Jenkins est un outil d’intégration et de déploiement continus très important. Sa flexibilité, son écosystème riche en plugins et sa communauté active en font une solution de choix pour les équipes souhaitant accélérer et fiabiliser leurs cycles de développement.