我们有一个 Jenkins 管道设置,使用 Jenkinsfile 来定义不同构建需要做什么。
在我们的很多阶段,当我们要发布版本时,我们需要完成一些工作,但如果不打算发布版本,则可以跳过这些工作。
目前我们有这样的代码:
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 尝试读取 Jenkinsfile 时,这是一个语法错误。
你可以尝试类似的东西
def isReleasePlanned(branch, params){
return branch ==~ "master|develop" && params.DBTESTS
}
pipeline {
...
stages {
...
stage("For release"){
when {
expression{ isReleasePlanned(GIT_BRANCH, params) }
}
}
}
...
}
或者从自定义库导出该函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)