Le Pipeline as Code est le paradigme central de Jenkins moderne. Le pipeline est décrit dans un Jenkinsfile Groovy versionné avec le code, ce qui le rend reproductible, auditable et partageable.
Notes détaillées
Note Contenu Jenkinsfile déclaratif Structure complète : agent, environment, options, parameters, stages, post, variables automatiques Directives essentielles when, triggers, input, parallel, stash/unstash, retry, timeoutShared Libraries Factoriser la logique commune entre pipelines : vars/, src/, resources/, @Library Bonnes pratiques Pipeline Sécurité, performance, organisation, fiabilité, outils complémentaires
Flux CI/CD type
Git Push / PR
↓
Webhook → Jenkins
↓
Checkout
↓
┌────────────────────────────────┐
│ Parallel : │
│ Compile | Lint | Unit Tests │
└────────────────────────────────┘
↓
SonarQube (Quality Gate)
↓
Package → Build Image Docker
↓
Push Registry
↓
Deploy DEV (auto)
↓
Integration Tests
↓
[input gate] → Deploy PROD
↓
Smoke Tests → Notify Slack
Syntaxe minimale
pipeline {
agent any
stages {
stage( 'Build' ) {
steps { sh 'mvn clean package' }
}
stage( 'Test' ) {
steps {
sh 'mvn test'
junit '**/target/surefire-reports/*.xml'
}
}
}
post {
failure { slackSend channel : '#ci' , color : 'danger' , message : "❌ ${env.JOB_NAME} #${env.BUILD_NUMBER}" }
always { cleanWs() }
}
}
Déclaratif vs Scriptable
Déclaratif Scriptable Syntaxe pipeline { ... }node { ... }Lisibilité ✅ Très lisible ⚠️ Verbeux Flexibilité Limitée (utiliser script {} pour le Groovy libre) Totale Validation Vérifiée avant exécution Erreurs à l’exécution Recommandation À utiliser par défaut Pour les cas avancés uniquement
En relation avec