Browse Source

изменение jenkinsfile для нового кластера

Tomishinets Vladimir 4 years ago
parent
commit
89478e5399
1 changed files with 25 additions and 31 deletions
  1. 25 31
      devK8s.Jenkinsfile

+ 25 - 31
devK8s.Jenkinsfile

@@ -1,5 +1,5 @@
-@Library('jenkins-library@master') _
-def Label = "promo-build-${UUID.randomUUID().toString()}"
+@Library('jenkins-library-iru@master') _
+def Label = "web-registration-promo-build-${UUID.randomUUID().toString()}"
 pipeline {
   options {
     buildDiscarder logRotator(numToKeepStr: '10')
@@ -12,18 +12,15 @@ pipeline {
     }
   }
   environment {
-    CLOUD='cloud-it-k8s'
-    DOCKER_IMAGE='iru/promo'
-    CHART_SUBPATH='helm/info'
+    CONTEXT='provision@sdsys.office'
+    DOCKER_IMAGE='web-registration/promo'
     NAMESPACE='info'
     HELM_GIT_URL='ssh://git@git.sdsys.ru:8022/iru/k8s.git'
-    APP_GIT_URL='ssh://gitolite@git.alfatell.ru:2223/web-registration-cloud.git'
-    SOURCE_GIT_URL='ssh://gitolite@git.alfatell.ru:2223/web-registration-cloud.git'
+    APP_GIT_URL='git@github.com:icruportal/web-registration.git'
+    SOURCE_GIT_URL='git@github.com:icruportal/web-registration.git'
     JENKINS_MAIL='jenkins.dev@sdsys.ru'
-    DOCKER_REGISTRY='jcr.infoclinica.ru'
-//    RELEASE_NAME=''
-    PROJECT=''
-    APP_DIR=''
+    DOCKER_REGISTRY='images.sdsys.ru'
+    VALUES_FILE = ''
     SOURCE_DIR=''
     HELM_DIR=''
     TAG=''
@@ -54,8 +51,8 @@ pipeline {
             sh 'echo $(git log -p -1 --pretty=format:"%h"|head -n1) > version'
           }
           HELM_DIR = dirOps.calculateDir(HELM_GIT_URL)
-          PROJECT = DOCKER_IMAGE.split("/")[1]
-          CHART_PATH = "${HELM_DIR}/${CHART_SUBPATH}"
+          CHART_PATH = "${HELM_DIR}/" + DOCKER_IMAGE.split("/")[0]
+          VALUES_FILE = "${CHART_PATH}/dev.yaml"
         }
       }
     }
@@ -67,7 +64,7 @@ pipeline {
             buildOps.maven()
           }
           echo "Build Promo"
-          dir("${SOURCE_DIR}/${PROJECT}") {
+          dir("${SOURCE_DIR}/" + DOCKER_IMAGE.split("/")[1]) {
             buildOps.gradle()
           }
         }
@@ -78,39 +75,37 @@ pipeline {
         script {
           sh "cp ${SOURCE_DIR}/promo/build/libs/promo-0.0.1-SNAPSHOT.war ."
           sh "cp ${SOURCE_DIR}/version ."
-          REGISTRY = DOCKER_REGISTRY + "/" + DOCKER_IMAGE
           COMMIT = sh(script: "cat version 2> /dev/null", returnStdout: true).trim()
-          TAG = "${COMMIT}-${BUILD_NUMBER}"
-          echo "Build Image with Kaniko with parameters"
-          echo "Repository: ${REGISTRY}"
-          echo "Tag: ${TAG}"
-          k8sBuildImage.kaniko(REGISTRY, TAG)
+          IMAGE_TO_PUSH = "${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${COMMIT}-${BUILD_NUMBER}"
+          echo "Build ${IMAGE_TO_PUSH} with Kaniko"
+          k8sBuildImage.kaniko(IMAGE_TO_PUSH)
         }
       }
     }
-    stage("Update Helm Chart values.yaml") {
+    stage("Update Helm Chart dev.yaml") {
       steps {
         script {
-          echo "Update Helm Chart"
+          TAG_PATH = "images." + DOCKER_IMAGE.split("/")[1]
+          echo "Update ${TAG_PATH} to ${IMAGE_TO_PUSH} in ${VALUES_FILE}"
           gitOps.clone(HELM_GIT_URL)
-          def data = readYaml file: "${CHART_PATH}/values.yaml"
-          TAG_PATH = "images.${PROJECT}.dev"
-          yamlOps.updateBuilder(TAG_PATH, data, TAG)
-          writeYaml file: "${CHART_PATH}/values.yaml", data: data, overwrite: true
+          def data = readYaml file: "${VALUES_FILE}"
+          yamlOps.updateBuilder(TAG_PATH, data, IMAGE_TO_PUSH)
+          writeYaml file: "${VALUES_FILE}", data: data, overwrite: true
         }
       }
     }
     stage("Update APP") {
       steps {
         script {
-          RELEASE_NAME = CHART_SUBPATH.split("/")[1]
+          RELEASE_NAME = DOCKER_IMAGE.split("/")[0]
+          NAMESPACE = DOCKER_IMAGE.split("/")[0]
           try {
             echo "Update APP"
-            k8sHelmOps.upgrade(CLOUD, NAMESPACE, RELEASE_NAME, CHART_PATH)
+            k8sHelmOps.upgrade(CONTEXT, NAMESPACE, RELEASE_NAME, CHART_PATH, VALUES_FILE)
           }
           catch(err) {
             echo "Recovering APP"
-            k8sHelmOps.rollback(CLOUD, NAMESPACE, RELEASE_NAME)
+            k8sHelmOps.rollback(CONTEXT, NAMESPACE, RELEASE_NAME)
             throw err
           }
         }
@@ -120,8 +115,7 @@ pipeline {
       steps {
         script {
           echo "Push changes to Repo"
-          APP_DIR = dirOps.calculateDir(APP_GIT_URL)
-          COMMIT = "Version update ${APP_DIR}"
+          COMMIT = "Version update" + DOCKER_IMAGE.split("/")[1]
           gitOps.push(HELM_DIR, COMMIT)
         }
       }