From 7c93d60cae6ff9b44f1ee74923544d8bf12e0f70 Mon Sep 17 00:00:00 2001 From: soufiane Date: Mon, 3 Nov 2025 21:00:57 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20index.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 584f9558..fe6c4050 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,24 +21,22 @@ pipeline { } stages { + /* ─────────────────────────────── * 1️⃣ Init — Détection automatique de l’environnement * ─────────────────────────────── */ stage('Init') { steps { script { - // 🔍 Détermine la branche Git courante def currentBranch = sh(script: "git rev-parse --abbrev-ref HEAD", returnStdout: true).trim() echo "🧭 Branche détectée : ${currentBranch}" - // 🧩 Si la branche correspond à un environnement connu, on l’utilise if (["dev", "preprod", "main"].contains(currentBranch)) { env.ENV = (currentBranch == "main") ? "prod" : currentBranch } else { env.ENV = params.ENV ?: "dev" } - // 🧱 Variables de déploiement dérivées env.TAG = "${env.ENV}-latest" env.DEPLOY_PATH = "/srv/devops/the-tip-top/${env.ENV}" @@ -47,10 +45,15 @@ pipeline { 🏷️ Tag Docker = ${env.TAG} 📂 Chemin de déploiement = ${env.DEPLOY_PATH} """ + + sh "ls -l ${env.DEPLOY_PATH} || echo '⚠️ Dossier non accessible depuis Jenkins'" } } } + /* ─────────────────────────────── + * 2️⃣ Checkout du code + * ─────────────────────────────── */ stage('Checkout') { steps { echo "📦 Récupération du code source depuis Gitea..." @@ -58,6 +61,9 @@ pipeline { } } + /* ─────────────────────────────── + * 3️⃣ Tests & Qualité + * ─────────────────────────────── */ stage('Tests & Qualité') { steps { echo "🧪 Lancement des tests et analyse de code..." @@ -69,6 +75,9 @@ pipeline { } } + /* ─────────────────────────────── + * 4️⃣ Build de l’image Docker + * ─────────────────────────────── */ stage('Build Docker image') { steps { echo "🐳 Construction de l’image Docker backend..." @@ -79,6 +88,9 @@ pipeline { } } + /* ─────────────────────────────── + * 5️⃣ Push vers le registre privé + * ─────────────────────────────── */ stage('Push to Registry') { steps { echo "📤 Envoi de l’image vers le registre Docker privé..." @@ -92,6 +104,9 @@ pipeline { } } + /* ─────────────────────────────── + * 6️⃣ Backup avant déploiement + * ─────────────────────────────── */ stage('Backup Before Deploy') { steps { echo "💾 Exécution du script de sauvegarde avant déploiement..." @@ -105,22 +120,33 @@ pipeline { } } + /* ─────────────────────────────── + * 7️⃣ Déploiement + * ─────────────────────────────── */ stage('Deploy') { steps { echo "🚀 Déploiement du backend sur ${env.ENV}..." - sh ''' + sh """ if [ ! -f "${DEPLOY_PATH}/docker-compose.yml" ]; then echo "❌ Fichier docker-compose.yml introuvable dans ${DEPLOY_PATH}" + echo "Contenu du dossier :" + ls -l ${DEPLOY_PATH} exit 1 fi cd "${DEPLOY_PATH}" + echo "📦 Pull de l'image Docker depuis le registre..." docker compose pull backend + + echo "🔄 Recréation du conteneur backend..." docker compose up -d --force-recreate backend - ''' + """ } } + /* ─────────────────────────────── + * 8️⃣ Vérification de santé + * ─────────────────────────────── */ stage('Health Check') { steps { echo "🩺 Vérification du backend après déploiement..." @@ -145,6 +171,9 @@ pipeline { } } + /* ─────────────────────────────── + * 🔚 Post Actions + * ─────────────────────────────── */ post { success { echo "✅ Pipeline backend ${env.ENV} terminé avec succès !"