0

我正在尝试编写一个 jenkinsfile,它将从 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 条件采用共享库,如果分支是主分支,则语句数据应该工作还是应该构建。

4

1 回答 1

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

于 2018-10-03T07:00:46.417 回答