Objectifs de la formation
- Maîtriser les principes de livraison et déploiement continus et comprendre le rôle de Jenkins dans le cycle de développement logiciel
- Installer, configurer et dimensionner un serveur Jenkins
- Gérer l'intégration avec d'autres outils : Git, Gradle, Maven, Docker…
- Mettre en œuvre les bonnes pratiques pour automatiser builds, tests et déploiements
- Implémenter des pipelines de livraison continue avec la suite de plugins Jenkins Pipeline
- Adapter l'exploitation de Jenkins à son contexte professionnel
Programme de la formation
Introduction
- Les pratiques agiles, DevOps et la philosophie « continue » (intégration continue, livraison continue, déploiement continu et feedbacks)
- Activités de test logiciel et automatisation (TDD et BDD)
- Qu’est-ce que Jenkins ? L’orchestrateur de l’intégration continue
Prise en main et configuration
- Rappel de la Terminologie Jenkins : master, node, job, agent…
- Structure des répertoires JENKINS_HOME et jobs
- L’interface utilisateur et ses composants
- Gestion du code source (Source Code Management) : commits, branches et Pull Requests
- Vue d’ensemble des outils Git, Java, Gradle, Maven...
- Les types de projets Jenkins : freestyle vs pipeline
Pipelines : mise en place
- Présentation de l’approche, bénéfices et cas d’usage
- Groovy et DSL
- Les syntaxes : déclarative ou de script
- Le fichier Jenkinsfile : pipeline-as-code
- Sections et étapes d’un pipeline
- Créer et exécuter un pipeline déclaratif
- Visualisation des logs
- Modifier et rejouer un pipeline
- Gestion des chaînes de caractères (strings)
Travaux pratiques
Création de pipelines, utilisation de la syntaxe déclarative, modification de pipelines.
Pipelines : configuration avancée
- Présentation des plugins Jenkins
- Les propriétés globales (interface de Jenkins)
- Les paramètres
- Les variables d'environnement
- Les artefacts
- Les empreintes
- Les identifiants (secrets / credentials)
- Relation entre les jobs
- Gérer les erreurs (post actions...)
- Paralléliser des tâches
- Pipeline multi configurés (matrix)
- Utiliser des images Docker comme environnement d’exécution pour un pipeline
- Introduction aux librairies partagées
Travaux pratiques
mise en place de tâches parallèles, exécution avec Docker, gestion des erreurs.
Transformation d’un projet freestyle vers Pipeline
- Générer un Jenkinsfile depuis un projet Freestyle
- Personnaliser le Jenkinsfile
Travaux pratiques
Transformer un projet freestyle existant vers un projet Pipeline
Plugins
- Quelques plugins utiles (tests, qualité...)
- Le Chat d’équipe et la gestion des notifications avec Zulip
- Jenkins Templating Engine (JTE)