如何运行post->;Jenkins文件中声明性管道中的failure元素是否仅存在条件?
我有一个声明性管道,我想定义一个全局如何运行post->;Jenkins文件中声明性管道中的failure元素是否仅存在条件?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个声明性管道,我想定义一个全局post->failure元素,它只在某些分支上执行。它应该在所有阶段之后执行,以便捕获管道中的任何故障。我希望使用导入的方法(例如,从其他groovy脚本),即,而不是示例中显示的echo命令 我的目标是创建一个通知,它只发生在一组特定的分支上,并且只发生在管道中的任何阶段失败的情况下 pipeline { agent any stages { stage('Compile') { steps {
post
->failure
元素,它只在某些分支上执行。它应该在所有阶段之后执行,以便捕获管道中的任何故障。我希望使用导入的方法(例如,从其他groovy脚本),即,而不是示例中显示的echo
命令
我的目标是创建一个通知,它只发生在一组特定的分支上,并且只发生在管道中的任何阶段失败的情况下
pipeline {
agent any
stages {
stage('Compile') {
steps {
...
}
}
/* ... other stages ... */
}
post {
success {
echo 'whole pipeline successful'
}
failure {
echo 'pipeline failed, at least one step failed'
}
}
}
,就像步骤
,但是步骤是afaik命令(搜索了一个小时,没有找到定义),这意味着我不能在或嵌套步骤时使用(可能吗?我也搜索了几个小时)
我不能用linter来处理这个问题,因为它们都局限于语法检查,而不检查管道逻辑。我尝试了/pipeline model converter/validate
URL,这很痛苦,因为它不能在web sureface中使用,而在postman中,您需要通过反复试验来接近OAuth身份验证。甚至没有用于验证的Docker映像。您可以在post
块中使用script
块来执行Groovy语句。例如:
post {
failure {
script {
if (env.GIT_BRANCH == 'dev') {
echo 'pipeline failed'
// email...
}
}
}
}