Cas pratiques Jenkins

30 cas pratiques Jenkins disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques d’intégration et déploiement continus

FondamentalJenkins

Ajout d'une étape de lint dans un pipeline existant

Contexte : Le pipeline Jenkins actuel exécute uniquement les tests automatisés. Le Problème : L'équipe souhaite intégrer une étape npm run lint avant les tests pour garantir la qualité du code. Contraintes : Ajouter un nouveau stage avant Test. Le build doit échouer si le lint échoue. Livrable attendu : Modifier le Jenkinsfile pour inclure un stage Lint exécuté avant les tests.

jenkinslintpipeline+1
FondamentalJenkins

Ajout d'une variable d'environnement simple dans un pipeline

Contexte : Une application nécessite une variable APP_ENV définie à test lors de l'exécution des tests. Le Problème : Le Jenkinsfile actuel ne définit aucune variable d'environnement. Contraintes : Ajouter la variable dans le pipeline déclaratif sans modifier le code source. Livrable attendu : Adapter le Jenkinsfile pour injecter correctement la variable d'environnement dans les étapes concernées.

jenkinsenvironmentpipeline+1
FondamentalJenkins

Archivage d'artefacts après build

Contexte : Un projet génère un dossier dist/ lors du build. Le Problème : Les fichiers générés ne sont pas conservés après l'exécution du job Jenkins. Contraintes : Utiliser archiveArtifacts dans le pipeline déclaratif. Livrable attendu : Modifier le Jenkinsfile pour archiver correctement les fichiers générés dans dist/ après le build.

jenkinsartifactspipeline+1
FondamentalJenkins

Correction d'un agent mal défini dans un Jenkinsfile

Contexte : Un pipeline Jenkins échoue immédiatement avec une erreur indiquant qu'aucun agent n'est disponible. Le Problème : Le Jenkinsfile ne définit pas correctement l'agent d'exécution. Jenkinsfile actuel : pipeline { stages { stage('Build') { steps { sh 'echo Build' } } } } Contraintes : Corriger uniquement la configuration du pipeline sans modifier la logique métier. Livrable attendu : Fournir un Jenkinsfile corrigé avec un agent valide permettant l'exécution correcte du pipeline.

jenkinsagentpipeline+1
FondamentalJenkins

Correction d'un Jenkinsfile qui ne se déclenche pas sur la branche principale

Contexte : Une équipe a mis en place un pipeline Jenkins pour un projet Node.js afin d'automatiser les tests à chaque commit. Le Problème : Malgré la présence d'un Jenkinsfile dans le repository, le job ne se déclenche pas lors des pushes sur la branche main. Contraintes : Vous devez corriger uniquement le Jenkinsfile. Le pipeline doit s'exécuter sur la branche main. Aucun changement dans le code applicatif. Jenkinsfile actuel : pipeline { agent any stages { stage('Test') { steps { sh 'npm install' sh 'npm test' } } } } Livrable attendu : Adapter le Jenkinsfile ou la configuration déclarative pour assurer le déclenchement correct sur la branche main.

jenkinspipelineci+2
FondamentalJenkins

Correction d'une erreur de syntaxe dans un pipeline déclaratif

Contexte : Un pipeline Jenkins échoue immédiatement avec une erreur de parsing. Le Problème : Une accolade ou un bloc stages semble mal structuré dans le Jenkinsfile. Contraintes : Corriger uniquement la syntaxe déclarative sans modifier la logique. Livrable attendu : Fournir une version syntaxiquement correcte du Jenkinsfile permettant l'exécution normale du pipeline.

jenkinssyntaxpipeline+1
FondamentalJenkins

Création d'un pipeline multi-stages simple

Contexte : Un projet nécessite une phase de build puis une phase de test distincte. Le Problème : Le pipeline actuel contient toutes les commandes dans un seul stage. Contraintes : Définir deux stages distincts : Build et Test. Livrable attendu : Fournir un Jenkinsfile structuré avec plusieurs stages correctement ordonnés.

jenkinsstagespipeline+1
FondamentalJenkins

Création d'un pipeline simple pour projet Node.js

Contexte : Un projet Node.js doit exécuter automatiquement ses tests via Jenkins à chaque build. Le Problème : Aucun Jenkinsfile n'est actuellement présent dans le repository. Contraintes : Utiliser un pipeline déclaratif simple. Installer les dépendances puis exécuter npm test. Utiliser agent any. Livrable attendu : Fournir un Jenkinsfile minimal fonctionnel permettant d'exécuter les tests Node.js automatiquement.

jenkinspipelinenodejs+1
FondamentalJenkins

Déclenchement manuel d'un build via paramètre simple

Contexte : Une équipe souhaite pouvoir déclencher manuellement un build Jenkins avec un paramètre personnalisé. Le Problème : Le pipeline actuel ne permet aucun paramètre d'entrée. Contraintes : Ajouter un paramètre string dans le Jenkinsfile et l'afficher dans une étape. Livrable attendu : Adapter le Jenkinsfile pour intégrer un paramètre déclaratif simple utilisable lors d'un build manuel.

jenkinsparameterspipeline+1
FondamentalJenkins

Exécution conditionnelle d'un stage selon la branche

Contexte : Une application doit être déployée uniquement lorsque la branche main est buildée. Le Problème : Le stage Deploy s'exécute sur toutes les branches. Contraintes : Ajouter une condition when branch 'main' dans le Jenkinsfile. Livrable attendu : Adapter le Jenkinsfile pour restreindre l'exécution du stage Deploy à la branche main uniquement.

jenkinsbranchconditional+1
AvancéJenkins

Archivage et réutilisation d'artefacts entre stages

Contexte : Un projet génère un fichier JAR lors du build qui doit être utilisé lors du stage Deploy. Le Problème : Le fichier n'est pas disponible dans les étapes suivantes. Contraintes : Utiliser archiveArtifacts et unstash ou stash pour transmettre les fichiers. Livrable attendu : Fournir un Jenkinsfile démontrant la sauvegarde et la réutilisation d'un artefact entre plusieurs stages.

jenkinsartifactsstash+2
AvancéJenkins

Déploiement conditionnel basé sur variable d'environnement

Contexte : Une application doit être déployée uniquement si la variable DEPLOY est définie à true lors du build. Le Problème : Le stage Deploy s'exécute systématiquement. Contraintes : Utiliser une condition when expression dans le pipeline déclaratif. Livrable attendu : Adapter le Jenkinsfile pour exécuter le stage Deploy uniquement si la variable DEPLOY est activée.

jenkinsconditionalpipeline+2
AvancéJenkins

Gestion sécurisée des credentials dans un pipeline

Contexte : Une application doit se connecter à un registry Docker privé lors du déploiement. Le Problème : Les identifiants sont actuellement écrits en clair dans le Jenkinsfile. Contraintes : Utiliser le système de credentials Jenkins et withCredentials pour injecter les secrets. Livrable attendu : Fournir un Jenkinsfile démontrant l'utilisation sécurisée des credentials pour une authentification Docker sans exposer d'informations sensibles.

jenkinscredentialssecurity+2
AvancéJenkins

Implémentation d'un pipeline parallèle pour tests multiples

Contexte : Un projet contient plusieurs suites de tests (unitaires, intégration, e2e). Le Problème : Le pipeline exécute les tests séquentiellement, augmentant la durée globale du build. Contraintes : Utiliser l'instruction parallel dans un stage pour exécuter les suites simultanément. Livrable attendu : Adapter le Jenkinsfile afin d'exécuter plusieurs branches de tests en parallèle dans un même stage.

jenkinsparalleltesting+2
AvancéJenkins

Intégration d'un build Docker complet dans Jenkins

Contexte : Une application Node.js doit être conteneurisée puis poussée vers un registry interne. Le Problème : Le pipeline actuel ne gère que les tests et ignore la construction Docker. Contraintes : Ajouter un stage Docker Build puis Docker Push sécurisé via credentials. Livrable attendu : Fournir un Jenkinsfile intégrant la construction et le push d'une image Docker dans un pipeline multi-stages.

jenkinsdockerpipeline+2
AvancéJenkins

Pipeline avec paramètres dynamiques et choix multiples

Contexte : Une application doit pouvoir être buildée pour différents environnements (dev, staging, prod). Le Problème : Le pipeline actuel ne permet aucun choix dynamique. Contraintes : Ajouter un paramètre choice dans le pipeline déclaratif et utiliser sa valeur dans les étapes. Livrable attendu : Adapter le Jenkinsfile pour intégrer un paramètre d'environnement dynamique influençant le comportement du pipeline.

jenkinsparameterspipeline+2
AvancéJenkins

Pipeline multi-agents avec séparation Build et Test

Contexte : Une application Java doit être buildée sur un agent Linux puis testée sur un autre agent disposant d'outils spécifiques. Le Problème : Le pipeline actuel utilise agent any global, empêchant un contrôle précis de l'environnement d'exécution. Contraintes : Utiliser un pipeline déclaratif avec des agents différents par stage. Aucun changement du code applicatif. Livrable attendu : Fournir un Jenkinsfile structuré utilisant agent none au niveau global et définissant des agents spécifiques pour les stages Build et Test.

jenkinspipelineagents+2
AvancéJenkins

Pipeline multi-branches avec logique adaptée

Contexte : Un projet comporte plusieurs branches longues (develop, release, main). Le Problème : Le pipeline actuel exécute exactement les mêmes étapes pour toutes les branches. Contraintes : Adapter le Jenkinsfile pour différencier le comportement selon la branche via when branch ou expression. Livrable attendu : Proposer un Jenkinsfile capable d'exécuter des stages spécifiques selon la branche en cours de build.

jenkinsbranchesconditional+2
AvancéJenkins

Stratégie de retry automatique pour stage instable

Contexte : Un stage de test échoue occasionnellement à cause d'un service externe instable. Le Problème : Le build est marqué failed même si l'erreur est temporaire. Contraintes : Mettre en place un mécanisme retry limité pour le stage concerné. Livrable attendu : Adapter le Jenkinsfile afin d'ajouter une logique de retry contrôlée sur un stage spécifique.

jenkinsretrypipeline+2
AvancéJenkins

Utilisation d'un agent Docker dans un pipeline déclaratif

Contexte : Une application nécessite un environnement spécifique avec Node 18 pour exécuter les tests. Le Problème : Les agents Jenkins disponibles n'ont pas toujours la bonne version Node installée. Contraintes : Utiliser un agent Docker dans le pipeline déclaratif pour garantir un environnement reproductible. Livrable attendu : Fournir un Jenkinsfile utilisant agent docker avec une image node:18 afin d'exécuter les étapes dans un conteneur isolé.

jenkinsdockeragent+2
ExpertJenkins

Gestion avancée des credentials avec masquage et rotation

Contexte : Une application nécessite plusieurs secrets (registry, base de données, API externe) pour fonctionner en CI/CD. Le Problème : Les credentials sont mal organisés et parfois visibles dans les logs Jenkins. Contraintes : Utiliser credentials binding, withCredentials et bonnes pratiques de masquage. Prévoir une stratégie facilitant la rotation des secrets. Livrable attendu : Proposer une architecture Jenkins sécurisée pour la gestion centralisée et masquée des credentials dans un pipeline complexe.

jenkinssecuritycredentials+2
ExpertJenkins

Implémentation d'un pipeline GitOps avec validation et promotion

Contexte : Un repository contient des manifestes Kubernetes versionnés qui doivent être validés avant application en production. Le Problème : Les changements sont appliqués sans validation préalable ni environnement intermédiaire. Contraintes : Ajouter des étapes de validation (lint, dry-run) puis une promotion contrôlée vers production. Livrable attendu : Décrire un Jenkinsfile intégrant validation automatique des manifestes, déploiement staging et promotion conditionnelle vers production.

jenkinsgitopskubernetes+2
ExpertJenkins

Optimisation avancée des performances avec caching Docker layers

Contexte : Les builds Docker sont très lents car chaque pipeline reconstruit l'image intégralement. Le Problème : Aucun mécanisme de cache Docker layer n'est utilisé dans Jenkins. Contraintes : Mettre en place une stratégie permettant la réutilisation des layers via registry intermédiaire ou cache local. Livrable attendu : Proposer un Jenkinsfile optimisé intégrant une stratégie de cache Docker pour accélérer les builds.

jenkinsdockercache+2
ExpertJenkins

Orchestration conditionnelle complexe avec partage de données entre stages

Contexte : Un pipeline doit transmettre dynamiquement des informations générées dans un stage (version buildée, tag Docker) aux stages suivants. Le Problème : Les données ne sont pas correctement propagées entre stages. Contraintes : Utiliser environment variables, stash/unstash ou script blocks pour partager les données. Livrable attendu : Décrire un Jenkinsfile permettant un partage fiable de données dynamiques entre plusieurs stages interdépendants.

jenkinspipelinedata-sharing+2
ExpertJenkins

Orchestration multi-pipelines avec déclenchement en cascade

Contexte : Une organisation possède plusieurs jobs Jenkins interdépendants (build, tests, déploiement infra). Chaque pipeline doit déclencher le suivant de manière contrôlée. Le Problème : Les jobs sont exécutés manuellement ou sans gestion claire des dépendances, provoquant des incohérences entre environnements. Contraintes : Utiliser build job: '...' dans un pipeline déclaratif ou scripté. Gérer les retours de statut et interrompre la chaîne en cas d'échec. Livrable attendu : Proposer un Jenkinsfile structuré permettant de déclencher des pipelines en cascade avec gestion robuste des erreurs et propagation correcte des statuts.

jenkinsorchestrationpipeline+2
ExpertJenkins

Pipeline Blue-Green avec validation et rollback automatisé

Contexte : Une application critique doit être déployée sans interruption de service sur un cluster Kubernetes. Le Problème : Les déploiements actuels remplacent directement la version active, sans stratégie de rollback rapide en cas d'échec. Contraintes : Mettre en place une logique Blue-Green avec validation post-déploiement et rollback automatique si un test échoue. Livrable attendu : Décrire un Jenkinsfile intégrant deux environnements (blue et green), une phase de validation et une logique conditionnelle de rollback automatisé.

jenkinsblue-greendeployment+2
ExpertJenkins

Pipeline dynamique basé sur modifications de dossiers

Contexte : Un monorepo contient plusieurs microservices indépendants. Le Problème : Chaque commit déclenche l'ensemble du pipeline même si un seul service est modifié. Contraintes : Implémenter une logique conditionnelle dans le Jenkinsfile analysant les changements via git diff pour exécuter uniquement les stages concernés. Livrable attendu : Décrire un pipeline capable de détecter dynamiquement les dossiers modifiés et d'adapter l'exécution des stages en conséquence.

jenkinsmonorepodynamic+2
ExpertJenkins

Pipeline multi-plateformes avec agents distribués

Contexte : Une application doit être buildée pour Linux et Windows à partir du même Jenkinsfile. Le Problème : Les builds sont actuellement exécutés sur un seul type d'agent. Contraintes : Utiliser plusieurs agents avec labels distincts et orchestrer des builds parallèles multi-plateformes. Livrable attendu : Proposer un Jenkinsfile structuré utilisant des agents spécifiques et des stages parallèles pour produire des builds multi-OS.

jenkinsagentsparallel+2
ExpertJenkins

Refonte complète d'un pipeline legacy vers pipeline déclaratif moderne

Contexte : Un projet utilise encore un job freestyle Jenkins complexe difficile à maintenir. Le Problème : La configuration est dispersée dans l'interface Jenkins et non versionnée. Contraintes : Migrer vers un Jenkinsfile déclaratif versionné dans le repository sans perdre les fonctionnalités existantes. Livrable attendu : Décrire une stratégie de migration vers un pipeline déclaratif moderne, maintenable et versionné.

jenkinsmigrationpipeline+2
ExpertJenkins

Sécurisation d'un pipeline contre exécution non autorisée

Contexte : Un pipeline Jenkins déploie en production et doit être strictement contrôlé. Le Problème : Tout utilisateur ayant accès au projet peut déclencher le job. Contraintes : Mettre en place des contrôles via input step, autorisations Jenkins et validation manuelle. Livrable attendu : Proposer une configuration Jenkins sécurisée incluant validation manuelle et restrictions d'accès avant déploiement critique.

jenkinssecurityapproval+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques Jenkins : 30 mises en situation | CodeDuel