Ver Fonte

fix stage backup 1.0

DESKTOP-SMCIPAV\falko há 4 meses atrás
pai
commit
37e5dfc701
1 ficheiros alterados com 69 adições e 72 exclusões
  1. 69 72
      Jenkinsfile

+ 69 - 72
Jenkinsfile

@@ -132,92 +132,89 @@ pipeline {
         //     }
         // }
 
-        // 6. Lancement des backups après déploiement
-       // 6. Lancement des backups après déploiement
         // 6. Lancement des backups après déploiement
        stage('Backup') {
-            steps {
-                script {
-                    echo "🚀 Lancement du backup sur le container ${env.BACKUP_CONTAINER}"
-                    
-                    try {
-                        def containerExists = sh(
-                            script: "docker ps -a --filter name=${env.BACKUP_CONTAINER} --format '{{.Names}}'",
-                            returnStdout: true
-                        ).trim()
-
-                        if (!containerExists) {
-                            echo "⚠️  Container ${env.BACKUP_CONTAINER} n'existe pas, lancement..."
-                            sh "docker-compose -f ${env.COMPOSE_FILE} up -d mongodb-backup-${env.ENV}"
-                            sleep(30)
-                        }
+    steps {
+        script {
+            echo "🚀 Lancement du backup sur le container ${env.BACKUP_CONTAINER}"
+            
+            try {
+                def containerExists = sh(
+                    script: "docker ps -a --filter name=${env.BACKUP_CONTAINER} --format '{{.Names}}'",
+                    returnStdout: true
+                ).trim()
+
+                if (!containerExists) {
+                    echo "⚠️  Container ${env.BACKUP_CONTAINER} n'existe pas, lancement..."
+                    sh "docker-compose -f ${env.COMPOSE_FILE} up -d mongodb-backup-${env.ENV}"
+                    sleep(30)
+                }
 
-                        def containerStatus = sh(
-                            script: "docker ps --filter name=${env.BACKUP_CONTAINER} --format '{{.Status}}'",
+                def containerStatus = sh(
+                    script: "docker ps --filter name=${env.BACKUP_CONTAINER} --format '{{.Status}}'",
+                    returnStdout: true
+                ).trim()
+
+                if (containerStatus.contains('Up')) {
+                    echo "✅ Container ${env.BACKUP_CONTAINER} est actif"
+                    sleep(10)
+
+                    echo "💾 Déclenchement du backup manuel..."
+                    def backupExitCode = sh(
+                        script: """
+                            docker exec ${env.BACKUP_CONTAINER} sh -c '
+                                BACKUP_DIR="/backup/\$(date +%Y-%m-%d_%H-%M-%S)" &&
+                                mkdir -p "\$BACKUP_DIR" &&
+                                mongodump --host=\${MONGO_HOST} --port=\${MONGO_PORT} \\
+                                          --archive="\$BACKUP_DIR/dump.archive.gz" --gzip
+                            '
+                        """,
+                        returnStatus: true
+                    )
+
+                    if (backupExitCode == 0) {
+                        def backupFiles = sh(
+                            script: "docker exec ${env.BACKUP_CONTAINER} find /backup -name '*.gz' -type f -mtime -1 | head -5",
                             returnStdout: true
                         ).trim()
 
-                        if (containerStatus.contains('Up')) {
-                            echo "✅ Container ${env.BACKUP_CONTAINER} est actif"
-                            sleep(10)
-
-                            echo "💾 Déclenchement du backup manuel..."
-                            def backupExitCode = sh(
-                                script: """
-                                    docker exec ${env.BACKUP_CONTAINER} sh -c '
-                                        BACKUP_DIR="/backup/$(date +%Y-%m-%d_%H-%M-%S)" &&
-                                        mkdir -p "$BACKUP_DIR" &&
-                                        mongodump --host=${env.MONGO_HOST} --port=${env.MONGO_PORT} \
-                                                  --archive="$BACKUP_DIR/dump.archive.gz" --gzip
-                                    '
-                                """,
-                                returnStatus: true
-                            )
-
-                            if (backupExitCode == 0) {
-                                def backupFiles = sh(
-                                    script: "docker exec ${env.BACKUP_CONTAINER} find /backup -name '*.gz' -type f -mtime -1 | head -5",
-                                    returnStdout: true
-                                ).trim()
-
-                                if (backupFiles) {
-                                    echo "✅ Backup ${env.ENV.toUpperCase()} réussi !"
-                                    echo "📁 Fichiers :"
-                                    backupFiles.split('\n').each { file ->
-                                        if (file.trim()) {
-                                            echo sh(
-                                                script: "docker exec ${env.BACKUP_CONTAINER} ls -lh '${file.trim()}'",
-                                                returnStdout: true
-                                            ).trim()
-                                        }
-                                    }
-                                } else {
-                                    echo "⚠️ Aucun fichier de backup récent trouvé"
+                        if (backupFiles) {
+                            echo "✅ Backup ${env.ENV.toUpperCase()} réussi !"
+                            echo "📁 Fichiers :"
+                            backupFiles.split('\n').each { file ->
+                                if (file.trim()) {
+                                    echo sh(
+                                        script: "docker exec ${env.BACKUP_CONTAINER} ls -lh '${file.trim()}'",
+                                        returnStdout: true
+                                    ).trim()
                                 }
-                            } else {
-                                echo "❌ Backup échoué avec code ${backupExitCode}"
-                                echo sh(
-                                    script: "docker logs --tail 20 ${env.BACKUP_CONTAINER} 2>&1 || true",
-                                    returnStdout: true
-                                )
-                                currentBuild.result = 'UNSTABLE'
                             }
-
                         } else {
-                            echo "❌ Container ${env.BACKUP_CONTAINER} inactif — tentative de redémarrage"
-                            sh "docker-compose -f ${env.COMPOSE_FILE} restart mongodb-backup-${env.ENV} || true"
-                            sleep(30)
+                            echo "⚠️ Aucun fichier de backup récent trouvé"
                         }
-
-                    } catch (Exception e) {
-                        echo "❌ Erreur lors du backup: ${e.getMessage()}"
+                    } else {
+                        echo "❌ Backup échoué avec code ${backupExitCode}"
+                        echo sh(
+                            script: "docker logs --tail 20 ${env.BACKUP_CONTAINER} 2>&1 || true",
+                            returnStdout: true
+                        )
                         currentBuild.result = 'UNSTABLE'
                     }
+
+                } else {
+                    echo "❌ Container ${env.BACKUP_CONTAINER} inactif — tentative de redémarrage"
+                    sh "docker-compose -f ${env.COMPOSE_FILE} restart mongodb-backup-${env.ENV} || true"
+                    sleep(30)
                 }
+
+            } catch (Exception e) {
+                echo "❌ Erreur lors du backup: ${e.getMessage()}"
+                currentBuild.result = 'UNSTABLE'
             }
         }
-    
-
+    }
+  }
+       
         // 7. Push optionnel de l'image dans le registre Nexus
         // stage('Push to Private Registry') {
         //     when {
@@ -238,7 +235,7 @@ pipeline {
         //         }
         //     }
         // }
-    }
+ }
 
     post {
         success {