我有两个 Jenkins 管道,它们有一个共同的
post
块:
在
first.Jenkinsfile
我有
pipeline {
...
post {
...
} // end post
} // end pipeline
并且在
second.Jenkinsfile
我有
pipeline {
...
post {
...
} // end post
} // end pipeline
我想做的是将公共
post
块提升到共享库中,并具有如下内容:
def common_post = load 'post.groovy'
pipeline {
...
common_post()
} // end pipeline
但我不知道该怎么做。我已经阅读了 https://www.jenkins.io/doc/book/pipeline/shared-libraries/ 以及一堆推荐共享库的 stackoverflow 问题 - 但这不是我想要的。我只想注入一个“后”声明性块。我不知道怎么办!
post
块是在声明式管道语法中定义的,您正在做的事情是脚本化管道的一部分。这两者可以以非常有限的方式混合:要么在共享库 call
方法中定义整个声明性管道,要么定义自定义步骤。 post
都不是。因此,不可能提升整个 post
块,但您可以提升其各个条件内的逻辑:
pipeline {
...
post {
always {
script {
common_post_always()
}
}
}
}