gpt4 book ai didi

jenkins - 我的 jenkins 管道可以有一个可重用的 "post" block 吗?

转载 作者:行者123 更新时间:2023-12-05 05:15:28 27 4
gpt4 key购买 nike

我有许多用于多个不同平台的 jenkins 管道,但我对所有这些管道的“post{}” block 非常相同。它在这一点上相当大,因为我在其中包括了成功、不稳定、失败和中止。

有没有办法参数化我可以在所有管道中导入的可重用 post{} block ?我希望能够导入它并向其传递参数(因为虽然它几乎相同,但对于不同的管道却略有不同)。

当前复制并粘贴到我的所有管道中的示例帖子 block {}

post {
success{
script {
// I'd like to be able to pass in values for param1 and param2
someGroovyScript {
param1 = 'blah1'
param2 = 'blah2'
}
// maybe id want a conditional here that does something with a passed in param
if (param3 == 'blah3') {
echo 'doing something'
}
}
}
unstable{
... you get the idea
}
aborted{
... you get the idea
}
failure{
... you get the idea
}
}

以下不起作用:

//在 mypipeline.groovy 中

...
post {
script {
myPost{}
}
}

//在 vars/myPost.groovy 中

def call(body) {

def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()

return always {
echo 'test'
}
}

无效条件“myPost”- 有效条件是 [always, changed, fixed, regression, aborted, success, unstable, failure, notBuilt, cleanup]

我能以某种方式覆盖 post{} 吗?

最佳答案

共享库是实现此目的的一种方法,您已经非常接近了。

@Library('my-shared-library')_
pipeline {
...
post {
always {
script {
myPost()
}
}
}
}

关于jenkins - 我的 jenkins 管道可以有一个可重用的 "post" block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508234/

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