Qu'est-ce que Jenkins ? — L'automatisation CI/CD expliquée
Jenkins est l'outil qui automatise les tests, la construction, et le déploiement de votre application — sans intervention humaine. Comprenez comment il fonctionne et pourquoi les équipes professionnelles l'utilisent.
En une phrase
Jenkins est un outil open source qui automatise les étapes répétitives du développement — lancer les tests, construire l'application, et la déployer — sans qu'un humain touche quoi que ce soit.
Pourquoi c'est utile ?
Sans Jenkins (ou un outil similaire), chaque développeur doit manuellement lancer les tests, vérifier le code, et déployer. C'est lent, sujet aux erreurs, et difficile à maintenir en équipe. Jenkins fait tout ça automatiquement à chaque modification de code.
L'essentiel
Jenkins est ce qu'on appelle un serveur d'automatisation. Il surveille votre dépôt Git et réagit chaque fois que quelqu'un pousse du code.
Ce que Jenkins fait concrètement
Quand un développeur fait git push, Jenkins :
- Détecte qu'un nouveau commit vient d'être poussé
- Récupère le code sur le serveur Jenkins
- Lance les tests automatiques
- Construit l'application (compile le code, crée une image Docker...)
- Déploie si tout est bon — ou alerte l'équipe si ça échoue
Tout ça se passe en quelques minutes, automatiquement.
Le Jenkinsfile — la recette du pipeline
Dans Jenkins, on définit un pipeline dans un fichier appelé Jenkinsfile. Ce fichier vit dans votre dépôt Git, à côté du code.
pipeline {
agent any
stages {
stage('Tests') {
steps {
sh 'npm test'
}
}
stage('Build') {
steps {
sh 'npm run build'
}
}
stage('Deploy Staging') {
steps {
sh './deploy-staging.sh'
}
}
}
}
Ce fichier dit à Jenkins : "À chaque push, lance les tests, puis construis, puis déploie en staging."
Jenkins vs GitHub Actions
Jenkins est puissant mais nécessite un serveur dédié que vous gérez vous-même. GitHub Actions est intégré à GitHub et ne nécessite aucune infrastructure.
| Jenkins | GitHub Actions | |
|---|---|---|
| Installation | Serveur dédié à gérer | Intégré à GitHub |
| Fichier config | Jenkinsfile |
.github/workflows/ |
| Coût | Gratuit (mais serveur à payer) | Gratuit (avec limites) |
| Utilisation | Grandes entreprises | Startups, open source |
| Flexibilité | Très élevée | Élevée |
Pour une startup qui héberge son code sur GitHub, GitHub Actions est souvent plus simple au démarrage. Jenkins est privilégié dans les grandes organisations avec des besoins complexes.
Les autres outils CI/CD populaires
| Outil | Particularité |
|---|---|
| GitHub Actions | Intégré à GitHub, très populaire |
| GitLab CI | Intégré à GitLab |
| CircleCI | Simple, basé sur le cloud |
| Travis CI | Historiquement populaire pour l'open source |
| Jenkins | Très flexible, self-hosted |
Exemple concret
Une équipe de 5 développeurs à Brazzaville travaille sur une application de gestion scolaire.
Sans Jenkins : - Chaque développeur lance manuellement les tests sur son ordinateur - Quelqu'un oublie de les lancer avant de pousser du code - Le bug arrive en production — les parents ne peuvent plus voir les notes de leurs enfants
Avec Jenkins : - Chaque push déclenche automatiquement le pipeline - Si les tests échouent, Jenkins bloque le déploiement et envoie un email à l'équipe - Le bug est détecté avant d'atteindre les utilisateurs - Le temps économisé par semaine : plusieurs heures. Les bugs en production : réduits drastiquement.
À retenir
- Jenkins est un serveur d'automatisation — il exécute tests, builds, et déploiements sans intervention humaine
- On configure Jenkins avec un fichier Jenkinsfile dans le dépôt Git
- Un pipeline = une série d'étapes automatiques déclenchées par un push Git
- Jenkins est surtout utilisé dans les grandes entreprises ; les startups préfèrent souvent GitHub Actions
- L'objectif est le même : ne jamais déployer du code non testé en production
Prochaine étape
Découvrez comment le code, une fois testé et validé par Jenkins ou GitHub Actions, est déployé sur un serveur et devient accessible aux utilisateurs du monde entier.