@Library(['jlib']) _ node("docker") { // Временная метка в логе Jenkins timestamps() { // Цветные букавы в логе Jenkins ansiColor("xterm"){ // Получаем актуальную версию репы, где лежит пайп checkout scm stage("Prepare environments") { if (env.BRANCH_NAME == 'master') env.stand = "prod" else if (env.BRANCH_NAME == 'dev') env.stand = "test" else error("Unsupported branch: ${env.BRANCH_NAME}") envConfig = "build/vars/build.yaml" support.getVarsV2(envConfig) // пока не будет готов отдельный dev стенд if (env.BRANCH_NAME == 'dev') { env.namespace = "${env.namespace}-test" env.registryContainerName = "${env.registryContainerName}-test" } println "Success prepare" } stage("Build image") { println "Start building image ${env.registryContainerName}:${env.version}" app = docker.build("${env.registryContainerName}:${env.version}", "--no-cache -f ./build/Dockerfile .") println "Start uploading image ${env.registryContainerName}:${env.version} to Nexus" docker.withRegistry("https://${registryUrl}", "nexus-jenkins-cred") { app.push("${env.version}") app.push("latest") } } stage("Update version in Kubernetes") { dir ("build") { withCredentials([vaultString(credentialsId: "${env.vaultPath}", variable: "pem")]) { sh """ set +x echo "${pem}" | base64 -d > auth.config set -x """ } convertJinjaV2("./helm/values.yaml", debug=true) sh """ helm upgrade --wait \ --kubeconfig auth.config \ --install \ --namespace ${env.namespace} \ -f ./helm/values.yaml \ ${env.appName} ./helm/ """ sh "kubectl --kubeconfig=auth.config get pods --namespace ${env.namespace}" } } println "Success build job. Now start cleanup" cleanWs( deleteDirs: true, disableDeferredWipeout: true ) } } }