【发布时间】:2021-10-07 19:25:28
【问题描述】:
我正在使用 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
}
}
}
有什么想法吗?
【问题讨论】:
-
那么您的实际问题是什么?发送电子邮件?
-
对不起,我意识到我不是很清楚......我的问题是我想在每次失败时发送一封电子邮件,但只有当状态变为成功时才会发送一封电子邮件。我想恢复“在构建失败和修复构建时接收邮件”的功能。
-
事实上,我的问题更笼统,关于“如何在后操作块中编写条件”
-
您在问题中提到了
changed。你为什么不用那个? -
我希望在除成功之外的所有状态上都有通知(即,我希望在每次失败时收到一封新电子邮件)。但你是对的,我终于完全使用了我发布的 sn-p 并接受了这个。我有另一个用例,我只需要在某些分支上执行一些发布操作,但是您对脚本块的其他响应也解决了这个问题!感谢您的帮助!