jenkins 流水线构建项目

pipeline{
    agent {
        node{
          label 'maven'
        }
    }
    stages {
      stage('clone code') {
          agent none
          steps {
            container('base') {
                git(url:'http://xxx.git',credentialsId: 'gitlab', changelog: true, poll: false, branch: 'master')
            }
          }
       } 
       stage('code analysis') {
          agent none
          when{
              environment name: 'NEED_CODE_ANALYSIS', value: 'true'
          }
          steps {
            container('maven') {
                 withCredentials([string(credentialsId : 'sonar', variable: 'SONAR_TOKEN' ,)]) {
                   withSonarQubeEnv('sonar') {
                        sh 'mvn compile sonar:sonar -Dsonar.login=$SONAR_TOKEN'
                    }
                }
                timeout(unit: 'HOURS', activity: ture, time: 1){
                    waitForQualityGate 'false'
                }   
            }
          }
      }
        stage('build & push') {
          agent none
          steps {
            container('maven') {
                dir('指定项目下的某模块的目录'){
                    sh 'mvn -e clean package - U'
                    withCredentials([usernamePassword(credentialsId: 'harbor',passwordVariable: 'HARBOR_PASSWORD', usernameVariable: 'H_USERNAMES' ,)]){
                        sh 'echo "$HARBOR_PASSWORD" | docker login harbor地址 -u "$H_USERNAMES" --password-stdin'        
                    }
                    sh '''docker build --add-host 私服域名:ip地址 -t $REGISTRY/$HARBOR_NAMESPACE/$ENV/$APP_NAME:$BUILD_NUMBER .
docker push $REGISTRY/$HARBOR_NAMESPACE/$ENV/$APP_NAME:$BUILD_NUMBER'''    
                }
            }
          }
        }  
        stage('deploy') {
           agent none
           steps {
              container('maven') {
                 dir('指定项目下的某模块的目录'){
                    withCredentials([kubeconfigFile(credentialsId: 'kubesphere-名',variable: 'KUBECONFIG' ,)]){
                        sh '''
envsbst < deploy.yaml | kubectl apply -f -'''
                    }
                }
            }
          }
      }
    }
    environment {
       SONAR_CREDENTIAL_ID = 'sonar'
       HARBOR_NAMESPACE= 'xxxx'
       ENV = 'dev'
       APP_NAME = 'deployment.yaml文件中配置名称'
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值