我正在寻找一种在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}
这样的条件(当然这个不起作用)?
谢谢!
答案 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
。