| 
					
				 | 
			
			
				@@ -3,7 +3,6 @@ pipeline { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     label "swarm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   environment { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    git_url="" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     docker_registry='dev-registry.infoclinica.ru:5000' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     docker_image='node' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,6 +17,11 @@ pipeline { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       defaultValue: "info_node info_node-api", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       description: "Services to update - i.e. info_node or/and info_node-api." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    string( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name: "mailto", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      defaultValue: "surkov.v@sdsys.ru", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      description: "Email which has to be notified." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   stages { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     stage("Build") { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -33,41 +37,38 @@ pipeline { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     stage("Update") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       when { expression { service_update != "" } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       steps { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        echo "Updating .$service_update." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         script { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           for (String item : service_update.split()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               echo "Updating $item" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              sh 'false' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              sh "docker service update $item --image ${docker_registry}/${docker_image}:${repo}-${BUILD_NUMBER}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             catch(err){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               echo "Recovering service $item" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              sh "docker service rollback $item" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               throw err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sh 'ls' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   post { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     always { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "It's always good to be here." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    changed { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "Something changed..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      echo "CleaningUp work diretory" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      deleteDir() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     failure { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "Oh, snap. It's failed again" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      mail charset: 'UTF-8', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           subject: "Jenkins build error: ${BUILD_URL}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           to: "${mailto}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           body: "<b>ATTENTION!!!</b> <b><br> Jenkins job failed !!!\n\n <b><br>Project Name:</b> ${env.JOB_NAME} <b><br>\nBuild Number:</b> ${env.BUILD_NUMBER} <b><br>\nStage Name:</b> Publish <b><br>\nURL Build:</b> ${env.BUILD_URL}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     success { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "Fine !!! It's SUCCESS !!!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    unstable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "Unstable ...." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    aborted { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      echo "Hmmm... It's aborted" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      mail charset: 'UTF-8', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           subject: "Jenkins build USCCESS: ${BUILD_URL}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           to: "${mailto}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           body: "<b>Congradulations!!!</b> <b><br> Jenkins job failed !!!\n\n <b><br>Project Name:</b> ${env.JOB_NAME} <b><br>\nBuild Number:</b> ${env.BUILD_NUMBER} <b><br>\nStage Name:</b> Publish <b><br>\nURL Build:</b> ${env.BUILD_URL}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |