多个Jenkins参数的条件OR

时间:2016-04-24 20:07:11

标签: git jenkins

我正在寻找一种在Jenkins工作中处理多个参数的方法。

我的构建可以通过推送到Gitlab或手动触发。

Gitlab传递${gitlabSourceBranch}作为参数,包含它已经接受推送的分支。我的分支构建设置目前设置为origin/${gitlabSourceBranch}。当推送到Gitlab时,它就像一个魅力。

不幸的是,当然,当触发手动构建时,它会失败:

[...]
> git rev-parse origin/${gitlabSourceBranch}^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.

因此,我已经设置了一个名为GIT_BRANCH的构建参数,其默认值为master,因为在手动构建时未设置${gitlabSourceBranch}

长话短说。是否可以使用像origin/${gitlabSourceBranch || GIT_BRANCH}这样的条件(当然这个不起作用)?

谢谢!

1 个答案:

答案 0 :(得分:3)

尝试使用EnvInject+Plugin

在作业的配置集This build is parameterized / Evaluated Groovy script中:

def map = [:]
map['GIT_BRANCH'] = GIT_BRANCH ? GIT_BRANCH : gitlabSourceBranch
return map

并将Source Code Management / Branches to build定义为:

origin/${GIT_BRANCH}

这应该允许您在为GIT_BRANCH参数传递非空值时覆盖$gitlabSourceBranch