Jenkins
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Serveur d'intégration continue (CI/CD) |
| Langage | Java |
| Port par défaut | 8080 |
| Voir aussi | Java · Tomcat |
Jenkins est un serveur d'intégration continue écrit en Java. Il orchestre la construction, les tests et le déploiement d'applications.
Ressources
- Documentation : https://www.jenkins.io/doc/
- Installation sur distributions Red Hat : https://www.jenkins.io/doc/book/installing/linux/
Jobs
Un job décrit une tâche Jenkins :
- Freestyle project — le plus courant (exécute des scripts shell/batch).
- Pipeline (workflow) — décrit par un DSL (Domain Specific Language).
- Multi-configuration — combine plusieurs configurations.
- GitHub organization — regroupe les dépôts d'une organisation.
- Folder — groupe de jobs.
- Multibranch pipeline — un pipeline par branche Git.
Build
- Un build est le résultat de l'exécution d'un projet.
- Un build step est une tâche unitaire d'un projet.
- Un artifact est un fichier immuable produit par un build (jar, war…).
- Un repository est un répertoire contenant du code.
Gestion du code source (SCM)
- Permet de tracer les changements (qui, quoi, comment).
- Permet de valider les changements et de les pousser.
Tests et notifications
Exemple de test unitaire :
function add_5(a) {
return a + 5;
}
@Test
function test_add_5() {
assertEquals(10, add_5(5), "5 + 5 doit valoir 10");
}
Types de tests couramment orchestrés :
- Test unitaire — teste une classe, une méthode, un module.
- Smoke test — vérifie la stabilité de base (chargement, menus…).
- Test fonctionnel — vérifie le comportement attendu.
- Test d'acceptation — vérifie le respect des spécifications.
- Notifications — remontée des résultats.
Build distribué
Utiliser les étapes de pipeline pour paralléliser (par exemple tester plusieurs navigateurs).
API REST
# point d'entrée de l'API
curl http://localhost:8080/api/
# déclencher un job
curl http://localhost:8080/job/jobname/build --user username:password
# avec paramètres
curl http://localhost:8080/job/jobname/buildWithParameters \
--user username:password \
--data-urlencode json='{"parameter":[{"name":"id","value":"abcd"}]}'