我们可以使用共享库将单个jenkins文件用于jenkins中的多分支piepeline吗?

时间:2018-10-01 12:33:05

标签: jenkins jenkins-pipeline jenkins-shared-libraries

我正在尝试编写一个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,如果语句数据应该工作或应该构建而使用共享库。

1 个答案:

答案 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