使用jenkins交付微服务应用至kubernetes集群

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'"
             
        }
      }
    }
}

猜你喜欢

转载自www.cnblogs.com/ipyanthony/p/12565894.html