formation пре 1 година
родитељ
комит
8efadf1ca4
1 измењених фајлова са 34 додато и 4 уклоњено
  1. 34 4
      Jenkinsfile

+ 34 - 4
Jenkinsfile

@@ -16,6 +16,24 @@ node {
         sh 'docker system prune -f'
     }
     
+    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 Docker images to Nexus') {
         environment {
             NEXUS_URL = 'https://nexus.foodgame.fr'
@@ -26,9 +44,9 @@ node {
             DOCKER_IMAGE_TAG = 'latest'
         }
         script {
-            withCredentials([usernamePassword(credentialsId: NEXUS_CREDENTIAL_ID, usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD')]) {
-                def dockerImage = "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"
-                def dockerRegistryUrl = "${NEXUS_URL}/repository/${DOCKER_IMAGE_NAME}/"
+            withCredentials([usernamePassword(credentialsId: env.NEXUS_CREDENTIAL_ID, usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD')]) {
+                def dockerImage = "${env.DOCKER_IMAGE_NAME}:${env.DOCKER_IMAGE_TAG}"
+                def dockerRegistryUrl = "${env.NEXUS_URL}/repository/${env.DOCKER_IMAGE_NAME}/"
 
                 // Build Docker image
                 sh "docker build -t ${dockerImage} ."
@@ -37,7 +55,7 @@ node {
                 sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
 
                 // Login to Nexus Docker registry
-                sh "docker login -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD} ${NEXUS_URL}"
+                sh "docker login -u ${env.NEXUS_USERNAME} -p ${env.NEXUS_PASSWORD} ${env.NEXUS_URL}"
 
                 // Push Docker image to Nexus repository
                 sh "docker push ${dockerRegistryUrl}${dockerImage}"
@@ -56,3 +74,15 @@ node {
        sh 'echo "Félicitation tout s\'est bien déroulé!"'  
    }
 }
+
+    stage('Build Docker MEAN Stack(PreProduction Deployment)') {
+        sh 'docker-compose -v'
+        sh 'docker-compose stop'
+        sh 'docker-compose build'
+        sh 'docker-compose up -d'
+    }
+
+    stage('Fin du Pipeline') {
+       sh 'echo "Félicitation tout s\'est bien déroulé!"'  
+   }
+}