Browse Source

Обновить 'Jenkinsfile'

Vladimir Tomishinets 7 years ago
parent
commit
65498f3d30
1 changed files with 43 additions and 0 deletions
  1. 43 0
      Jenkinsfile

+ 43 - 0
Jenkinsfile

@@ -75,6 +75,49 @@ pipeline {
            '''
       }
     }
+    stage("Publish") {
+      steps {
+        echo "Publishing ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${BUILD_NUMBER}."
+        sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${BUILD_NUMBER}"
+      }
+    }
+    stage("Prod-like") {
+      steps {
+        echo "Check Prod-like cluster status"
+        sh '''ping -c 2 ${CLUSTER_NAME}
+              if [ $? -eq 0 ]; then
+                export DOCKER_CERT_PATH=/run/secrets/swarm
+                export DOCKER_HOST=tcp://${CLUSTER_NAME}:2376 DOCKER_TLS_VERIFY=1
+                docker node ls --format "{{.Hostname}} {{.TLSStatus}}" | while read host status
+                do
+                  if [ $status != Ready ]; then echo "Cluster ${CLUSTER_NAME} state is inconsistent"; exit 1
+                  else echo "HOST: $host STATUS: $status"
+                  fi
+                done
+              else echo "Host not Found"; exit 1
+              fi
+           '''
+        echo "Run containers in Prod-like"
+        sh '''export DOCKER_CERT_PATH=/run/secrets/swarm
+              export DOCKER_HOST=tcp://dev-iru-swarm1.infoclinica.lan:2376 DOCKER_TLS_VERIFY=1
+              if [ !$(docker service ps -q ${DOCKER_IMAGE}) ];then
+                docker service create --replicas 2 \
+                --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \
+                --name ${SERVICE_NAME} ${DOCKER_REGISTRY}/${SERVICE_IMAGE}:1 -p 1194:1194 \
+                --privileged --security-opt seccomp=unconfined \
+                --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+                -e "mode=server" ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${BUILD_NUMBER}
+              else
+                docker service update \
+                --args "-p 1194:1194 --privileged --security-opt seccomp=unconfined \
+                --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+                -e "mode=server" ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${BUILD_NUMBER}" \
+                ${SERVICE_NAME}
+                if [ $? != 0 ]; then docker service rollback ${SERVICE_NAME}; fi
+              fi
+           '''
+      }
+    }
   }
   post {
     always {