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

Jenkins多分支(管道)/分支跟踪

姜育
2023-03-14

对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题:

1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件?

2) 每个分支都应该具有相同的管道构建脚本。不幸的是,在“构建配置”部分中,唯一的选项是“通过Jenkinsfile”。我希望能够在配置中本地配置我的脚本,它应该适用于所有分支构建。

你能帮我吗?谢谢!

Jenkins版本2.10,所有插件都是最新版本。

共有1个答案

孔寒
2023-03-14

多分支管道作业将为存储库中的所有分支运行,并在管道配置中指定的crontab计划中发现新分支。

如果您希望每个分支的行为不同,您可以这样做:

script {
    if( "${env.BRANCH_NAME}" == "master" ) {
        ....
    }
    if( "${env.BRANCH_NAME}" == "integration" ) {
        ....
    }
}
 类似资料:
  • 我正在努力使用Jenkins 2.1多分支管道,在这里,我从同一个git存储库构建了多个工件。一些工件是独立的,应该根据它们各自目录中的更改触发构建。有些是依赖的,应该由先前的步骤/构建触发。 存储库有一个控制整个管道的文件。Jenkins多分支管道作业会在所有更改时触发(无其他行为)。 我不知道如何在目录dirA发生变化时触发工件A的构建。 git回购协议中的Jenkins文件file:///r

  • 我对使用Jenkins文件和GIT插件的Jenkins多分支pipleline有一个问题。 问题是,每次向暂存分支推送都会触发master管道。所需的行为是,推送到暂存分支仅触发用于暂存的管道,而推送到主分支仅触发主管道 这是我的詹金斯档案 我将分享一些日志:这是主分支的日志 这是主分支的日志,但只有暂存有一个新的提交: 注意“已发现更改”,即使主分支上的头未更改 詹金斯·弗。2.190.1 Gi

  • 是否可以将多分支管道限制为一次只构建一个分支? 我有一个管道,它包含签出、构建、测试,然后部署的步骤。部署阶段在特定的机器上复制/执行一些文件,这些工作无法与其他分支作业并行完成。 我尝试过: 但这只限制了基于分支的并发,因此仍然有多个分支将并行运行。 此外,在常规非流水线Jenkins作业中,有一个选项复选框: “必要时执行并发生成” 但这在多分支配置中也不可用。 是否有其他配置来实现这一点,或

  • 美好的一天, 我尝试在新的Jenkins实例上设置多分支管道,在扫描多分支管道日志中遇到了以下错误: 没有这样的文件:E:\Continuous Integration\Jenkins\jobs\Enhanced API\indexing\indexing.log 根据jenkins.err.log,我遇到了一个 这个Jenkins的版本是2.85,带有以下版本的Git插件: Git客户端插件-2

  • 我需要知道我的Jenkins multibranch管道中正在构建哪个分支,以便它正确运行步骤。 我们将gitflow模式与用于创建工件的dev、release和master分支一起使用。dev分支自动部署,其他两个不自动部署。还有功能、错误修复和热修复分支。这些分支应该被构建,但不能产生工件。如果他们的代码有问题,应该使用它们来通知开发人员。 在标准构建中,我可以访问变量来知道正在构建哪个分支,

  • 我有一个场景,但我有两个项目(a和B),都在Jenkins中配置了多分支管道作业,问题是项目B依赖于项目a。 所以我发现有时候当我在项目A中签入代码时,我也需要在项目A构建后构建项目B。现在,在我开始调查管道构建之前,我将每个分支都有一个作业,然后在Jenkins中为相应的分支触发项目B的适当作业。 我想在Jenkins文件中设置什么,这样当ProjectA/develop执行时,它就会触发Pro