Explorar el Código

correction au niveau du bloc try-catch

Jenkinsfile
henri carmelo hace 10 meses
padre
commit
c8c8194940
Se han modificado 1 ficheros con 207 adiciones y 146 borrados
  1. 207 146
      Jenkinsfile

+ 207 - 146
Jenkinsfile

@@ -8,87 +8,8 @@ pipeline {
         PROD_URL = "prod.foodgame.fr"
     }
     stages {
-        stage('Setup Environment') {
-            steps {
-                script {
-                    echo "Environnement détecté : ${env.BRANCH_NAME}"
-                    if (env.BRANCH_NAME == 'test') {
-                        echo "Déploiement sur DEV (${DEV_URL})"
-                    } else if (env.BRANCH_NAME == 'dev') {
-                        echo "Déploiement sur PREPROD (${PREPROD_URL})"
-                    } else if (env.BRANCH_NAME == 'master') {
-                        echo "Déploiement sur PROD (${PROD_URL})"
-                    } else {
-                        error "Branche non prise en charge : ${env.BRANCH_NAME}"
-                    }
-                }
-                sh 'npm --version'
-            }
-        }
-
-        stage('Checkout Code') {
-            steps {
-                deleteDir()
-                checkout scm
-            }
-        }
-
-        // stage('SonarQube Analysis') {
-        //     steps {
-        //         script {
-        //             def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
-        //             withSonarQubeEnv('SonarQube') { // Nom du serveur SonarQube configuré dans Jenkins
-        //                 sh """
-        //                 ${scannerHome}/bin/sonar-scanner \
-        //                 -Dsonar.projectKey=FatboarProject-${env.BRANCH_NAME} \
-        //                 -Dsonar.sources=. \
-        //                 -Dsonar.host.url=https://sonarqube.foodgame.fr \
-        //                 -Dsonar.login=sqa_d81445ef2d3961cddf7e29e31c1aeb2505aacdbd
-        //                 """
-        //             }
-        //         }
-        //     }
-        // }
-
-        stage('Stop Containers') {
-            steps {
-                sh '''
-                docker ps | grep "workflow_" -v | awk -F " " '{ if(NR>1) print $1}' | xargs docker kill || true
-                docker system prune -f
-                '''
-            }
-        }
+        // ... (autres stages inchangés)
 
-        stage('Build & Deploy') {
-            steps {
-                sh '''
-                docker-compose stop
-                docker-compose build
-                docker-compose up -d
-                '''
-            }
-        }
-
-        // stage('Push Docker Image (Nexus)') {
-        //     when {
-        //         branch 'master'
-        //     }
-        //     steps {
-        //         withDockerRegistry([credentialsId: 'nexus', url: 'https://nexus.foodgame.fr']) {
-        //             script {
-        //                 def dockerImageName = 'workflow_jenkins_1'
-        //                 def dockerImageTag = 'latest'
-        //                 def nexusRepository = 'fatboar_repo'
-
-        //                 sh """
-        //                 docker tag ${dockerImageName}:${dockerImageTag} ${nexusRepository}/${dockerImageName}:${dockerImageTag}
-        //                 docker push ${nexusRepository}/${dockerImageName}:${dockerImageTag}
-        //                 """
-        //             }
-        //         }
-        //     }
-        // }
-    
         stage('Docker Registry Login, Pull, and Push') {
             when {
                 branch 'dev'
@@ -101,21 +22,21 @@ pipeline {
                     
                     docker.withRegistry("https://${registryUrl}", 'nexus') {
                         try {
-                            Try pulling the image from the registry
+                            // Try pulling the image from the registry
                             echo "Trying to pull image: ${registryUrl}/${imageName}:${imageVersion}"
                             docker.image("${registryUrl}/${imageName}:${imageVersion}").pull()
                         } catch (Exception e) {
                             echo "Image pull failed. Attempting to build and push."
 
-                            Pull base image from Docker Hub
+                            // Pull base image from Docker Hub
                             echo "Pulling base image: ${imageName}:${imageVersion}"
                             sh "docker pull ${imageName}:${imageVersion}"
                             
-                            Tag the image for the private registry
+                            // Tag the image for the private registry
                             echo "Tagging image for private registry"
                             sh "docker tag ${imageName}:${imageVersion} ${registryUrl}/${imageName}:${imageVersion}"
                             
-                            Push the tagged image to the private registry
+                            // Push the tagged image to the private registry
                             echo "Pushing image to private registry"
                             sh "docker push ${registryUrl}/${imageName}:${imageVersion}"
                         }
@@ -123,20 +44,8 @@ pipeline {
                 }
             }
         }
-    
 
-
-        stage('Cleanup') {
-            steps {
-                echo "Nettoyage terminé pour la branche ${env.BRANCH_NAME}"
-            }
-        }
-
-        stage('Fin du Pipeline') {
-            steps {
-                sh 'echo "Félicitations, le pipeline s\'est terminé avec succès !"'
-            }
-        }
+        // ... (autres stages inchangés)
     }
     post {
         success {
@@ -150,61 +59,213 @@ pipeline {
 
 
 
+// pipeline {
+//     agent any
+//     environment {
+//         NODEJS_HOME = "${tool 'NodeJS'}"
+//         PATH = "${env.NODEJS_HOME}/bin:${env.PATH}"
+//         DEV_URL = "dev.foodgame.fr"
+//         PREPROD_URL = "preprod.foodgame.fr"
+//         PROD_URL = "prod.foodgame.fr"
+//     }
+//     stages {
+//         stage('Setup Environment') {
+//             steps {
+//                 script {
+//                     echo "Environnement détecté : ${env.BRANCH_NAME}"
+//                     if (env.BRANCH_NAME == 'test') {
+//                         echo "Déploiement sur DEV (${DEV_URL})"
+//                     } else if (env.BRANCH_NAME == 'dev') {
+//                         echo "Déploiement sur PREPROD (${PREPROD_URL})"
+//                     } else if (env.BRANCH_NAME == 'master') {
+//                         echo "Déploiement sur PROD (${PROD_URL})"
+//                     } else {
+//                         error "Branche non prise en charge : ${env.BRANCH_NAME}"
+//                     }
+//                 }
+//                 sh 'npm --version'
+//             }
+//         }
 
-// node{
+//         stage('Checkout Code') {
+//             steps {
+//                 deleteDir()
+//                 checkout scm
+//             }
+//         }
 
-//     env.NODEJS_HOME = "${tool 'NodeJS'}"
-//     // on linux / mac
-//     env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
-//     // on windows
-//     //env.PATH="${env.NODEJS_HOME};${env.PATH}"
-//     sh 'npm --version'
+//         // stage('SonarQube Analysis') {
+//         //     steps {
+//         //         script {
+//         //             def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
+//         //             withSonarQubeEnv('SonarQube') { // Nom du serveur SonarQube configuré dans Jenkins
+//         //                 sh """
+//         //                 ${scannerHome}/bin/sonar-scanner \
+//         //                 -Dsonar.projectKey=FatboarProject-${env.BRANCH_NAME} \
+//         //                 -Dsonar.sources=. \
+//         //                 -Dsonar.host.url=https://sonarqube.foodgame.fr \
+//         //                 -Dsonar.login=sqa_d81445ef2d3961cddf7e29e31c1aeb2505aacdbd
+//         //                 """
+//         //             }
+//         //         }
+//         //     }
+//         // }
 
-// 	stage('checkout')
-// 	{
-// 		deleteDir()
-// 		checkout scm
-// 	}
-	 
-// 	 stage('Stop Containers')
-//     {
-//         sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
-//         sh 'docker system prune -f'
+//         stage('Stop Containers') {
+//             steps {
+//                 sh '''
+//                 docker ps | grep "workflow_" -v | awk -F " " '{ if(NR>1) print $1}' | xargs docker kill || true
+//                 docker system prune -f
+//                 '''
+//             }
+//         }
+
+//         stage('Build & Deploy') {
+//             steps {
+//                 sh '''
+//                 docker-compose stop
+//                 docker-compose build
+//                 docker-compose up -d
+//                 '''
+//             }
+//         }
+
+//         // stage('Push Docker Image (Nexus)') {
+//         //     when {
+//         //         branch 'master'
+//         //     }
+//         //     steps {
+//         //         withDockerRegistry([credentialsId: 'nexus', url: 'https://nexus.foodgame.fr']) {
+//         //             script {
+//         //                 def dockerImageName = 'workflow_jenkins_1'
+//         //                 def dockerImageTag = 'latest'
+//         //                 def nexusRepository = 'fatboar_repo'
+
+//         //                 sh """
+//         //                 docker tag ${dockerImageName}:${dockerImageTag} ${nexusRepository}/${dockerImageName}:${dockerImageTag}
+//         //                 docker push ${nexusRepository}/${dockerImageName}:${dockerImageTag}
+//         //                 """
+//         //             }
+//         //         }
+//         //     }
+//         // }
+    
+//         stage('Docker Registry Login, Pull, and Push') {
+//             when {
+//                 branch 'dev'
+//             }
+//             steps {
+//                 script {
+//                     def registryUrl = 'nexus.foodgame.fr:8123'
+//                     def imageName = 'grafana/tns-db'
+//                     def imageVersion = 'latest'
+                    
+//                     docker.withRegistry("https://${registryUrl}", 'nexus') {
+//                         try {
+//                             Try pulling the image from the registry
+//                             echo "Trying to pull image: ${registryUrl}/${imageName}:${imageVersion}"
+//                             docker.image("${registryUrl}/${imageName}:${imageVersion}").pull()
+//                         } catch (Exception e) {
+//                             echo "Image pull failed. Attempting to build and push."
+
+//                             Pull base image from Docker Hub
+//                             echo "Pulling base image: ${imageName}:${imageVersion}"
+//                             sh "docker pull ${imageName}:${imageVersion}"
+                            
+//                             Tag the image for the private registry
+//                             echo "Tagging image for private registry"
+//                             sh "docker tag ${imageName}:${imageVersion} ${registryUrl}/${imageName}:${imageVersion}"
+                            
+//                             Push the tagged image to the private registry
+//                             echo "Pushing image to private registry"
+//                             sh "docker push ${registryUrl}/${imageName}:${imageVersion}"
+//                         }
+//                     }
+//                 }
+//             }
+//         }
+    
+
+
+//         stage('Cleanup') {
+//             steps {
+//                 echo "Nettoyage terminé pour la branche ${env.BRANCH_NAME}"
+//             }
+//         }
+
+//         stage('Fin du Pipeline') {
+//             steps {
+//                 sh 'echo "Félicitations, le pipeline s\'est terminé avec succès !"'
+//             }
+//         }
 //     }
+//     post {
+//         success {
+//             echo "Pipeline exécuté avec succès pour la branche ${env.BRANCH_NAME}."
+//         }
+//         failure {
+//             echo "Échec du pipeline pour la branche ${env.BRANCH_NAME}."
+//         }
+//     }
+// }
+
+
+
+
+// // node{
+
+// //     env.NODEJS_HOME = "${tool 'NodeJS'}"
+// //     // on linux / mac
+// //     env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
+// //     // on windows
+// //     //env.PATH="${env.NODEJS_HOME};${env.PATH}"
+// //     sh 'npm --version'
+
+// // 	stage('checkout')
+// // 	{
+// // 		deleteDir()
+// // 		checkout scm
+// // 	}
+	 
+// // 	 stage('Stop Containers')
+// //     {
+// //         sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
+// //         sh 'docker system prune -f'
+// //     }
 	
 	
-// 	// stage("Push preprod images to nexus")
-// 	// {
-// 	// 	docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
-// 	// 	{
-// 	// 		imageApache.push('latest')
-// 	// 		imageExpress.push('latest')
-// 	// 	}*/
-// 	// }
-//     // stage('SonarQube analysis') 
-//     // {  
-//     //      def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
-//     //     withSonarQubeEnv('SonarQube') 
-//     //     { 
-//     //     // If you have configured more than one global server connection, you can specify its name
-//     //     sh "${scannerHome}/bin/sonar-scanner  \
-//     //     -Dsonar.projectKey=FatboarProject \
-//     //     -Dsonar.sources=. \
-//     //     -Dsonar.host.url=https://sonarqube.foodgame.fr \
-//     //     -Dsonar.login=sqp_09ee9072c917af8212864baf0f75c950afc14c64"
-//     //     }
-//     // }
+// // 	// stage("Push preprod images to nexus")
+// // 	// {
+// // 	// 	docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21')
+// // 	// 	{
+// // 	// 		imageApache.push('latest')
+// // 	// 		imageExpress.push('latest')
+// // 	// 	}*/
+// // 	// }
+// //     // stage('SonarQube analysis') 
+// //     // {  
+// //     //      def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation';
+// //     //     withSonarQubeEnv('SonarQube') 
+// //     //     { 
+// //     //     // If you have configured more than one global server connection, you can specify its name
+// //     //     sh "${scannerHome}/bin/sonar-scanner  \
+// //     //     -Dsonar.projectKey=FatboarProject \
+// //     //     -Dsonar.sources=. \
+// //     //     -Dsonar.host.url=https://sonarqube.foodgame.fr \
+// //     //     -Dsonar.login=sqp_09ee9072c917af8212864baf0f75c950afc14c64"
+// //     //     }
+// //     // }
 	
 
-//     stage('Build Docker MEAN Stack(Test Deployment)') 
-//     {
-//         sh 'docker-compose -v'
-//         sh 'docker-compose build'
-//         sh 'docker-compose up -d'
-//     }
+// //     stage('Build Docker MEAN Stack(Test Deployment)') 
+// //     {
+// //         sh 'docker-compose -v'
+// //         sh 'docker-compose build'
+// //         sh 'docker-compose up -d'
+// //     }
    
-//     stage('Fin du Pipeline') 
-//     {
-//        sh 'echo "Félicitation tout c\'est bien déroulé!"'  
-//    }
-// }
+// //     stage('Fin du Pipeline') 
+// //     {
+// //        sh 'echo "Félicitation tout c\'est bien déroulé!"'  
+// //    }
+// // }