我们使用Jenkins文件设置Jenkins管道,以定义需要为不同构建做什么。
在我们的很多阶段,当我们要进行发布时,我们需要完成一些工作,但是如果不能完成发布,则可以跳过。
目前我们有这段代码:
when {
allOf {
anyOf {
branch 'master';
branch 'develop';
}
expression {
return params.DBTESTS
}
}
}
在所有可以跳过的阶段重复。
我如何将其转换为函数,以便逻辑在一个类似于这样的地方:
def isReleasePlanned() {
return allOf {
anyOf {
branch 'master';
branch 'develop';
}
expression {
return params.DBTESTS
}
}
}
}
然后像这样使用:
when {
isReleasePlanned()
}
在每个阶段。目前,当Jenkins尝试读取Jenkins文件时,这是一个语法错误。
答案 0 :(得分:1)
您可以尝试类似
的内容def isReleasePlanned(branch, params){
return branch ==~ "master|develop" && params.DBTESTS
}
pipeline {
...
stages {
...
stage("For release"){
when {
expression{ isReleasePlanned(GIT_BRANCH, params) }
}
}
}
...
}
或者从自定义库中导出该函数。