如何检索构建作业状态(成功/错误)以便在管道中的构建后步骤中使用?

时间:2017-07-17 05:13:48

标签: jenkins jenkins-pipeline

在我通过管道在Jenkins上的构建工作中,我需要一个依赖于构建状态的构建后步骤。如果工作成功,那就做这个'。否则,请做那个'。

如何使用管道检索构建作业状态,并保存它,例如在环境变量中,在构建后的步骤中使用它?

2 个答案:

答案 0 :(得分:1)

在管道顶部定义颜色(易于跟踪成功/失败) 并在阶段后添加帖子操作

def COLOR_MAP = ['SUCCESS': 'good', 'FAILURE': 'danger', 'UNSTABLE': 'danger', 'ABORTED': 'danger']

pipeline {
  agent any 

  options {
    ansiColor('xterm')
  }

  stages {
    stage("Build") {
    }
    stage("Deploy") {
    }
  } //end of stages

  post {
    always {
      slackSend (color: COLOR_MAP[currentBuild.currentResult], message: "Job: *${env.JOB_NAME}, build #${env.BUILD_NUMBER}* is *`${currentBuild.currentResult}`* \nRun in ${currentBuild.durationString} - <${env.BUILD_URL}|Go to this job>")
    }
  } 

https://plugins.jenkins.io/slack

中配置松弛积分

答案 1 :(得分:0)

您可以使用post block根据构建状态执行操作,如下所示:

post {
        success {
            emailext ( 
                subject: '${DEFAULT_SUBJECT}'+'SUCESSFUL', 
                body: '${DEFAULT_CONTENT}',
                to: '${EMAIL_RECIPIENTS}'
                );
                slackSend (color: 'good', message: ":csp_operational: ${env.JOB_NAME} - #${env.BUILD_NUMBER} Success (<${env.BUILD_URL}|Open>)");


        }
        failure {
            emailext ( 
                subject: '${DEFAULT_SUBJECT}'+'FAILED!', 
                body: '${DEFAULT_CONTENT}',
                to: '${EMAIL_RECIPIENTS}'
                );
                slackSend (color: 'danger', message: ":x: ${env.JOB_NAME} - #${env.BUILD_NUMBER} Failure (<${env.BUILD_URL}|Open>)");


        }

    }