使用Git SCM设置全局管道库时,放置$ {library.pipeline-utils.version}的位置

时间:2016-10-21 15:49:54

标签: jenkins jenkins-pipeline

我正在尝试设置一个全局管道库,该库将使用@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

3 个答案:

答案 0 :(得分:1)

这是我使用版本变量${library.CpsGlobal.version}Branches to build / Branch Specifier设置它的方式:

clean method

PS。请删除库名称中的“-”字符,因为Groovy不支持该字符。

答案 1 :(得分:1)

现在终于有一个Git的“现代scm”实现,就像我们正在使用它一样。

答案 2 :(得分:0)

为我工作:

  • 图书馆名称:testlib
  • 默认版本:branchname
  • 要构建的分支:$ {library.testlib.version}