我们看到我们的Jenkins多分支管道的多个构建由Bitbucket中的相同合并提交触发。
一个构建标记由:“分支事件”
触发另一个是:“提交通知”
我们在插件中设置了Jenkins网址
Bitbucket Server Webhook to Jenkins
并在Jenkinsfile设置中有一个触发器,如下所示:
triggers {
pollSCM ""
cron "H 0 * * *"
}
遗憾的是,似乎有一些旧的questions没有具体答案。
答案 0 :(得分:1)
我们使用Bitbucket与Jenkins集成并遇到了这个问题。我们的问题是在Bitbucket webhook上我们选择了来自推送和PR的通知。此配置在创建PR时创建了一个带有分支名称的Job和一个名为PR-XXX的第二个作业。
也许这就是原因?
答案 1 :(得分:0)
看起来:Branch API Plugin
和Git client plugin
都会向触发构建的Jenkins发送事件。
我们通过抑制自动触发解决了这个问题。
这可以在UI中完成,只需转到您的工作,从左侧选择配置然后添加属性
禁止自动SCM触发。
或者代码解决方案(我最终使用)将其添加到seedjob.groovy,如下所示:
multibranchPipelineJob("${service.name}-build") {
// ... unrelated code omitted
configure { project ->
project.remove(project / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'strategy' / 'properties')
def s = project / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'strategy' {
properties(class: 'java.util.Arrays$ArrayList') {
a(class: 'jenkins.branch.NoTriggerBranchProperty') {
'jenkins.branch.NoTriggerBranchProperty' ''
}
}
}
}
}
更新:
似乎上面的答案有效,但有一个错误,它没有自动触发推送功能分支。在我们的Jenkinsfile中,我们添加了:
properties([overrideIndexTriggers(true)])
这确保git提交仍会触发构建,尽管我们的seedjob中有NoTriggerBranchProperty。