浏览代码

création du jenkinsfile multi-branches

ajout de stages
henri carmelo 10 月之前
父节点
当前提交
8625be7051
共有 1 个文件被更改,包括 115 次插入115 次删除
  1. 115 115
      Jenkinsfile

+ 115 - 115
Jenkinsfile

@@ -26,68 +26,68 @@ pipeline {
             }
         }
 
-        // 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
-        //         '''
-        //     }
-        // }
-
-        // 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('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
+                '''
+            }
+        }
+
+        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 {
@@ -101,21 +101,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}"
                         }
@@ -151,60 +151,60 @@ pipeline {
 
 
 
-// node{
+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'
+    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('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')
+    {
+        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é!"'  
+   }
+}