Files
svc-api-x/build/Jenkinsfile
T
2024-11-05 10:21:18 +03:00

67 lines
2.5 KiB
Groovy

@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
)
}
}
}