gpt4 book ai didi

Jenkins声明式管道条件后 Action

转载 作者:行者123 更新时间:2023-12-04 10:23:04 24 4
gpt4 key购买 nike

我正在使用Jenkins声明性管道,并希望根据构建状态执行一些构建后操作。

更准确地说,我想在构建状态更改时(从成功到失败,或者从成功到不稳定,或者从失败到成功)发送电子邮件。

这是我的管道:

pipeline {
agent none
stages {
stage('test') {
agent any
steps {
sh './tests.sh'
}
}
}
post {
changed {
// Send different emails depending on build status
// Success -> anything else
// Anything else -> Success
}
}
}

任何想法 ?

最佳答案

对于书写条件,您可以定义自己的方法。

例如,如果您只想在构建状态更改时发送电子邮件,请执行以下操作:

def notifyStatusChangeViaEmail(buildStatus) {
def status

switch (buildStatus) {
case 'SUCCESS':
status = 'is now green again!'
break

case 'UNSTABLE':
status = 'has become unstable..'
break

case 'FAILURE':
status = 'has turned RED :('
break
}

emailext (
subject: "Job '${env.JOB_NAME}' ${status}",
body: "See ${env.BUILD_URL} for more details",
recipientProviders: [
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']
]
)
}

pipeline {
...

post {
changed {
// Will trigger only when job status changes: GREEN -> RED, RED -> GREEN, etc
notifyStatusChangeViaEmail(currentBuild.currentResult)
}
}
}

理想情况下,您还希望将 notifyStatusChangeViaEmail方法定义放在 shared pipeline library中,以便可以在其他作业/管道中重新使用它。

关于Jenkins声明式管道条件后 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com