我正在尝试编写一个jenkins文件,该文件将从jenkins的共享库中获取数据以用于多分支管道,如下所示:-
@Library('Template')_
if (env.BRANCH_NAME == 'master') {
jenkins1(PROJECTNAME: 'test', GITURL: 'http://test/test.git')
} else {
jenkins2(PROJECTNAME: 'test1', GITURL: 'http:////test/test.git')
}
因此,管道将根据if条件,如果分支为master,如果语句数据应该工作或应该构建而使用共享库。
答案 0 :(得分:2)
是可以的。实际上,我们正在使用一个多分支项目来以这种方式测试对共享库的更改。
您必须使用library
步骤而不是@Library
注释来加载库,例如:
if (condition) {
library(‘someLib@${env.BRANCH_NAME}’)
} else {
library(‘someOtherLib’)
}
有关所有详细信息,请参见https://jenkins.io/doc/pipeline/steps/workflow-cps-global-lib/#library-load-a-shared-library-on-the-fly。
顺便说一句:如果您打算执行“拉取请求”,则以下帖子也可能对您有用:https://stackoverflow.com/a/51915362/4279361