【发布时间】:2018-03-26 17:25:19
【问题描述】:
在我通过管道在 Jenkins 上的构建作业中,我需要一个依赖于构建状态的构建后步骤。如果工作成功,则执行“此”。否则做'那个'。
如何使用管道检索构建作业状态并将其保存,例如在构建后步骤中使用它的环境变量中?
【问题讨论】:
在我通过管道在 Jenkins 上的构建作业中,我需要一个依赖于构建状态的构建后步骤。如果工作成功,则执行“此”。否则做'那个'。
如何使用管道检索构建作业状态并将其保存,例如在构建后步骤中使用它的环境变量中?
【问题讨论】:
在管道顶部定义颜色(易于跟踪成功/失败) 并在阶段部分之后添加发布操作
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 中配置松弛集成
【讨论】:
您可以使用 post 块根据构建状态执行操作,如下所示:
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>)");
}
}
【讨论】: