pipeline {
agent any
stages {
stage('pull') { //get project code from repo
steps {
sh "git clone ${params.git_repo} ${params.app_name}/${env.BUILD_NUMBER} && cd ${params.app_name}/${env.BUILD_NUMBER} && git checkout ${params.git_ver}"
}
}
stage('build') { //exec mvn cmd
steps {
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && /var/jenkins_home/maven-${params.maven}/bin/${params.mvn_cmd}"
}
}
stage('package') { //move jar file into project_dir
steps {
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && cd ./yutang-${params.app_name}/target && mkdir project_dir && mv *.jar ./project_dir && chmod 755 ./project_dir/*"
}
}
stage('image') { //build image and push to registry
steps {
writeFile file: "${params.app_name}/${env.BUILD_NUMBER}/Dockerfile", text: """FROM harbor.yutang.cn/${params.base_image}
ADD ./yutang-${params.app_name}/target/project_dir /opt/project_dir"""
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && docker build -t harbor.yutang.cn/app/${params.app_name}:${params.git_ver}_${params.add_tag} . && docker push harbor.yutang.cn/app/${params.app_name}:${params.git_ver}_${params.add_tag}"
}
}
stage('deploy'){
steps {
sh label: "deploy k8s", script: "ssh yutang2-175 'sh /opt/crontabs/delpoy-yamls/${params.app_name}.sh ${params.add_tag} && kubectl replace -f /opt/crontabs/delpoy-yamls/yamls/${params.app_name}.yaml'"
}
}
}
}