jenkins pipeline 基本模式

pipeline {
    agent any

    //任务集合,一个大的任务
    stages {
        stage('代码获取') {
            steps {
                echo "get code is ok"
            }
        }
        stage('代码质检') {
            steps {
                echo "get code is ok"
            }
        }
        stage('代码构建') {
            steps {
                echo "build is ok"
            }
        }
        stage('代码部署') {
            steps {
                echo "deploy is ok"
            }
        }
    }
}
pipeline {
    agent any

    //任务集合,一个大的任务
    stages {
        stage('代码获取') {
        steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '0f180207-47af-4820-a956-a20fdd1f445f', url: '[email protected]:/api.git']]])
            }
        }
        stage('代码质检') {
            steps {
                withSonarQubeEnv('SonarQube') {
                    sh '/usr/local/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=stg-api -Dsonar.projectName=${JOB_NAME} -Dsonar.sources=. -Dsonar.java.binaries=target/'
                }
                    script {
                       timeout(3) {
                           sleep(10)
                           def qg = waitForQualityGate()
                           if (qg.status != 'OK') {
                               error "未通过SonarQube的代码检查,请及时修改! failure: ${qg.status}"
                           }
                       }
                   }
            }
        }
        stage('代码构建') {
            steps {
                sh '/bin/mvn clean install'
            }
        }
        stage('代码部署') {
            steps {
                sh '/usr/local/shell/stg-api.sh'
            }
        }
    }
    post {
        failure {
            dingTalk accessToken: 'd631ae76dabd6fabba81b1fe4a7f3d2fe3a8da8636ba72554348ef71e1982a2a', imageUrl: 'http://jenkins.abc.com/dingding_fail.png', jenkinsUrl: 'http://jenkins.abc.com:8080/', message: '代码部署失败', notifyPeople: 'phone'
        }
        success {
            dingTalk accessToken: 'd631ae76dabd6fabba81b1fe4a7f3d2fe3a8da8636ba72554348ef71e1982a2a', imageUrl: 'http://jenkins.abc.com/dingding_OK.png', jenkinsUrl: 'http://jenkins.abc.com:8080/', message: '代码部署成功', notifyPeople: 'phone'
        }

    }
}
01-07 02:07