当前位置: 首页 > 知识库问答 >
问题:

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

程沛
2023-03-14

我试图编写一个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条件、分支是否为master、if语句数据是否应该工作或是否应该构建来获取共享库。

共有1个答案

晏晨朗
2023-03-14

是的,那是可能的。实际上,我们正在使用一个多分支项目来测试我们对共享库的更改。

您必须使用library步骤来加载库,而不是@library注释,如:

if (condition) {
    library(‘someLib@${env.BRANCH_NAME}’)
} else {
    library(‘someOtherLib’)
}

看见https://jenkins.io/doc/pipeline/steps/workflow-cps-global-lib/#library-动态加载共享库以获取所有详细信息。

顺便说一下:如果你打算做拉请求,下面的帖子也可能对你有用:https://stackoverflow.com/a/51915362/4279361

 类似资料:
  • 我有一个Jenkins文件,我正在尝试从共享库实例化groovy类。我得到“无法解决类测试” 我有一个src/com/org/foo。共享库中的groovy文件: 我正试图在我的Jenkins文件中实例化它 如果我将文件作为一个类引用(我没有对其构造函数的访问权限),那么它就会起作用。即: 这很好,让我使用foo函数。但是,我失去了赋予类常量并用参数构造它的能力。 知道如何定义和使用共享库中的类吗

  • 可以合并多个共享Jenkins库吗? 例如,我有一个公共共享库:我的共享库(带有maven项目的git存储库)定义在包含一些作业的jenkins文件夹上。在该文件夹中运行的每个作业都可以使用Jenkins文件中的共享库,包括: 现在,我想创建另一个共享库:包含一些专门管道的my-专门化共享库(在另一个git存储库中,也作为maven项目)。我的专用共享库中的管道(groovy类、脚本等)应该能够使

  • 我有一个名为“jenkins共享库”的jenkins共享库的存储库,现在我创建了一个名为“test”的新分支, 我有一个应用程序需要在jenkins文件中使用这个jenkins共享库,目前它被称为 我想在我的jenkins文件中使用我的jenkins共享库的这个特定测试分支,我如何使用jenkins共享库的特定分支???

  • 所以我正在尝试为几个不同的项目制作一个多分支管道。 这些是基本要求: < li >每个客户有三项工作开发、准备和生产 < li >对于每个作业,从每个回购中提取相应的分支,并构建一个bot < li >如果作业正在使用的存储库中发生任何变化,则触发该环境的构建 所以这些要求非常简单。 但是还有第四个要求。我想弄清楚的是,我是否可以有一个回购,它可以保存我所有的Jenkins文件,然后构建另一个回购

  • 我将我的Jenkins Pipeline存储为Jenkins共享库中的Groovy脚本。我想为不同的工作使用不同的版本。我的共享库脚本称为如下: 我已将sharedLib repo中的不同版本标记为。万一我想用v1。0,我用注释引用了它,如下所示。 在我的工作中,我通过调用groovy脚本访问了共享库,并使用了上面的注释,如图所示: 我运行这项工作时出错了。以下是我看到的错误。 当我使用。我哪里出