我正在尝试设置一个全局管道库,该库将使用@Library()
每these instruction显式加载。关于从master分支加载默认库版本,我的工作正常。
我无法做的是弄清楚如何配置事物,以便它可以根据请求使用Library('lib-name@branch-name')
语法加载不同的分支。
说明说:
“使用旧版SCM时,您需要在某处的SCM配置中包含$ {library.pipeline-utils.version}。”
我尝试使用${library.pipeline-utils.version}
作为Branch Specifier
的值,这是我能想到的唯一合理的位置。但那只是打破了局面。尝试加载库失败:
Fetching upstream changes from ssh://git@stash:7999/jen/pipeline-utils.git
> git --version # timeout=10
> git fetch --tags --progress ssh://git@stash:7999/jen/pipeline-utils.git +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/${library.pipeline-utils.version}^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/${library.pipeline-utils.version}^{commit} # timeout=10
> git rev-parse origin/${library.pipeline-utils.version}^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
这让我觉得我把变量放在正确的位置,但Jenkins没有插入它。 (错误?)
这是使用Jenkins 2.7.1和Pipeline版本2.4
答案 0 :(得分:1)
这是我使用版本变量${library.CpsGlobal.version}
和Branches to build / Branch Specifier
设置它的方式:
PS。请删除库名称中的“-
”字符,因为Groovy不支持该字符。
答案 1 :(得分:1)
现在终于有一个Git的“现代scm”实现,就像我们正在使用它一样。
答案 2 :(得分:0)
为我工作: