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

jenkins多分支管道中的分支索引触发了额外的构建,这已经由轮询SCM构建

能正青
2023-03-14

我有一个多分支管道。我已在Jenkins文件属性中配置触发器:

pipelineTriggers([pollSCM('H/2 * * * *')])])

多分支管道配置为定期"扫描多分支管道触发器"。预期行为:触发器仅构建在通过jenkinsFile实际配置的构建触发器上:它触发在轮询SCM和相同提交的“重新索引”上的构建。

我们正在使用

詹金斯:2.107.1

git插件: 3.8.0

管道多分支: 2.17

共有1个答案

毋胜涝
2023-03-14

我想我们无法阻止构建触发器进行扫描。但是我们的构建应该能够识别并停止额外的构建。

// execute this before anything else, including requesting any time on an agent
    if (currentBuild.getBuildCauses().toString().contains('BranchIndexingCause')) {
      print "INFO: Build skipped due to trigger being Branch Indexing"
      currentBuild.result = 'ABORTED' // optional, gives a better hint to the user that it's been skipped, rather than the default which shows it's successful
      return
    }

来源:https://www.jvt.me/posts/2020/02/23/jenkins-multibranch-skip-branch-index/

 类似资料:
  • 我们看到在Jenkins多分支管道项目上触发了重复构建。构建通常使用来自Bitbucket的推送通知触发,并使用以下插件:https://marketplace.atlassian.com/plugins/com.nerdwin15.stash-stash-webhook-jenkins/server/overview 然而,出于某种原因,我们现在看到了“双重”构建。如果查看触发的两个生成,一个由

  • 我有一个Jenkins管道作业(不是多分支管道),管道内的逻辑之一是,当gitlab scm上有一个合并请求时,我想基于触发此生成的合并请求的源分支构建一些东西。 我的问题是,在Jenkinsfile中,我如何动态地获取这个源分支,签出代码,并创建一个工作区,以便在这个分支上运行构建?

  • 有人知道如何使用跨分支的多分支作业中设置的声明性管道来限制并发构建吗? 每当我们为某个阶段设置代理时,就会分配一个新的执行者。这会导致死锁,例如,当您为尽可能多的分支同时触发生成时,您有执行者。不设置代理会导致阶段随机选择执行者,这是不可接受的,因为某些阶段需要在某些代理上运行。。。 经典的方法不起作用: Throttle并发构建插件不适用于多分支 设置属性([disableConcurrentB

  • 我正试图在詹金斯建立一个多分支管道项目。理想情况下,我希望在开发人员推出新代码后构建分支管道。例如,如果开发人员推送到“dev”分支,那么“dev”管道将自动生成。 我知道在“扫描多分支管道触发器”选项下,您可以设置Jenkins查找更改的频率,但我更希望是相反的方式,这意味着一旦分支中有新代码,Jenkins将构建管道。 我配置了我的Jenkinsfile,并在我的GitHub项目中设置了Web

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

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