Jenkins est le serveur d’intégration et de déploiement continu open-source le plus utilisé. Il automatise l’ensemble du cycle build → test → analyse → package → déploiement via des pipelines déclaratifs (Jenkinsfile).


Architecture

HubContenu
Architecture — Vue d’ensembleController/Agent, Build Queue, types de jobs

Notes détaillées

NoteContenu
Composants JenkinsController, Agents, Jobs, Plugins, Executors, JENKINS_HOME
Agents et nœudsSSH, JNLP, Docker, Kubernetes, EC2 — labels, configuration, scaling

Pipeline

HubContenu
Pipeline — Vue d’ensembleFlux CI/CD, syntaxe minimale, déclaratif vs scriptable

Notes détaillées

NoteContenu
Jenkinsfile déclaratifagent, environment, options, parameters, stages, post, variables
Directives essentielleswhen, triggers, input, parallel, stash, retry, timeout
Shared Librariesvars/, src/, resources/, @Library, tests avec JenkinsPipelineUnit
Bonnes pratiques PipelineSécurité, performance, organisation, fiabilité

Administration

HubContenu
Administration — Vue d’ensembleChecklist prod, options d’installation

Notes détaillées

NoteContenu
Installation et configurationDocker, Helm, JCasC, configuration sécurité initiale
Plugins essentielsPipeline, SCM, Kubernetes, Qualité, Notifications, Monitoring
Triggers et notificationsWebhooks, Poll SCM, Cron, Slack, Email, PagerDuty
Credentials et sécuritéTypes, withCredentials, Role Strategy, Vault, JCasC

Déploiement avancé

NoteContenu
Jenkins sur AWS (IaC + JCasC)Packer (AMI), Terraform (EC2/ECS/Fargate), JCasC, agents dynamiques

Concepts clés

TermeDéfinition
ControllerCerveau Jenkins — orchestre, stocke la config, distribue les builds
Agent / NodeMachine qui exécute les builds (SSH, Docker, K8s Pod…)
ExecutorThread de build sur un agent
Job / PipelineUnité de travail — décrit dans un Jenkinsfile
Release / BuildInstance d’exécution d’un job
Credentials StoreCoffre-fort chiffré pour les secrets
JCasCJenkins Configuration as Code — config reproductible en YAML
Shared LibraryBibliothèque Groovy partagée entre plusieurs pipelines