@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" // временно для этого микросервиса env.namespace = "${env.namespace}-test" } else error("Unsupported branch: ${env.BRANCH_NAME}") envConfig = "build/vars/build.yaml" support.getVarsV2(envConfig) 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: "config.${env.registryContainerName}-${env.stand}", variable: "pem")]) { sh """ set +x echo "${pem}" | base64 -d > auth.config set -x """ } convertJinja("microservice.yaml.tmpl", "microservice.yaml") sh "kubectl --kubeconfig=auth.config get pods --namespace ${env.namespace}" sh "kubectl --kubeconfig=auth.config apply -f microservice.yaml" } } println "Success build job. Now start cleanup" cleanWs( deleteDirs: true, disableDeferredWipeout: true ) } } }