Page

Jenkins

🎯 Objectif Cette page présente l'usage de Jenkins comme moteur de pipeline CI/CD dans le contexte Duqueine. --- ❓ Pourquoi utiliser Jenkins ? Jenkins est un outil open source d'automatisation CI/CD. Il permet de : - déclencher des pipelines automatiquement - exécuter des tests - construire des artefacts - orchestrer des déploiements - centraliser les résultats d'exécution --- Avantages de Jenkins 🔧 Très flexible Jenkins est hautement personnalisable grâce à son écosystème de plugins. 🏢 Adapté…

Retour au chapitre

🎯 Objectif

Cette page présente l'usage de Jenkins comme moteur de pipeline CI/CD dans le contexte Duqueine.

---

❓ Pourquoi utiliser Jenkins ?

Jenkins est un outil open source d'automatisation CI/CD.

Il permet de :

  • déclencher des pipelines automatiquement
  • exécuter des tests
  • construire des artefacts
  • orchestrer des déploiements
  • centraliser les résultats d'exécution

---

## Avantages de Jenkins

🔧 Très flexible

Jenkins est hautement personnalisable grâce à son écosystème de plugins.

🏢 Adapté à l'auto-hébergement

Il permet de garder la maîtrise de :

  • l'infrastructure
  • les flux réseau
  • les secrets
  • les règles d'exécution

♻️ Compatible avec des pipelines complexes

Jenkins est pertinent lorsque les workflows sont nombreux, spécifiques ou fortement industrialisés.

👥 Outil largement connu

Il existe beaucoup de ressources, de plugins et de retours d'expérience.

---

⚠️ Limites de Jenkins

🛠️ Mise en place plus lourde

Le setup initial demande du temps :

  • installation
  • sécurisation
  • gestion des plugins
  • organisation des agents

🔄 Maintenance régulière

Il faut suivre :

  • les mises à jour Jenkins
  • les mises à jour des plugins
  • les compatibilités entre extensions

🖥️ Interface moins moderne

L'expérience utilisateur est souvent jugée moins intuitive que celle des plateformes CI/CD récentes.

---

🧱 Structure type d'une pipeline Jenkins

Une pipeline Jenkins peut contenir les étapes suivantes :

1. récupération du code 2. installation des dépendances 3. build 4. tests unitaires 5. tests d'intégration 6. analyse qualité 7. packaging ou publication 8. déploiement

---

📝 Définir une pipeline Jenkins

La pratique recommandée consiste à versionner la pipeline dans le dépôt via un Jenkinsfile.

Exemple très simplifié :

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Test') {
            steps {
                sh 'npm test'
            }
        }

        stage('Build') {
            steps {
                sh 'npm run build'
            }
        }
    }
}

---

🔐 Bonnes pratiques Jenkins

  • stocker la pipeline dans le dépôt
  • limiter les droits administrateurs
  • utiliser Vault ou un gestionnaire de secrets
  • isoler les builds si possible
  • versionner les configurations importantes
  • surveiller les échecs récurrents

---

🧪 Jenkins dans notre contexte

Jenkins peut être utilisé pour :

  • exécuter les tests avant merge
  • piloter des builds Docker
  • lancer les analyses SonarQube
  • récupérer des secrets depuis Vault
  • déclencher des déploiements contrôlés

---

📌 Quand choisir Jenkins ?

Jenkins est souvent un bon choix si l'entreprise privilégie :

  • l'auto-hébergement
  • la personnalisation poussée
  • la continuité avec des pratiques déjà existantes