Jenkins 从同一提交多分支管道开始重复构建
Jenkins starts Duplicate builds from same commit Multibranch pipeline
我们看到我们的 Jenkins 多分支管道的多个构建被 Bitbucket 中的同一个合并提交触发。
一个构建被标记为触发:"Branch event at "
其他作者:"commit notification "
我们在插件中设置了 Jenkins url
Bitbucket Server Webhook to Jenkins
并在 Jenkinsfile 设置中有一个我们的触发器,如下所示:
triggers {
pollSCM ""
cron "H 0 * * *"
}
似乎有一些旧的 questions 不幸的是没有具体的答案。
看起来 Branch API Plugin
和 Git client plugin
都在向 Jenkins 发送触发构建的事件。
我们通过抑制自动触发解决了这个问题。
这可以在 UI 中完成,只需转到您的工作,从左侧选择配置,然后添加 属性
Suppress automatic SCM triggering.
或者,对于代码解决方案(我最终使用的),将其添加到 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' ''
}
}
}
}
}
更新:
Julian 的答案似乎有效,但有一个错误,它不会自动触发对功能分支的推送。在我们的 Jenkinsfile 中,我们添加了:
properties([overrideIndexTriggers(true)])
尽管我们的 seedjob 中有 NoTriggerBranchProperty,这确保 git 提交仍然触发构建。
我们在使用 Bitbucket 与 Jenkins 集成时遇到了这个问题。我们的问题是,在 Bitbucket webhook 上,我们选择了来自推送和 PR 的通知。此配置在创建 PR 时创建了一个具有分支名称的作业和一个名为 PR-XXX 的第二个作业。
也许是这个原因?
我们看到我们的 Jenkins 多分支管道的多个构建被 Bitbucket 中的同一个合并提交触发。
一个构建被标记为触发:"Branch event at "
其他作者:"commit notification "
我们在插件中设置了 Jenkins url
Bitbucket Server Webhook to Jenkins
并在 Jenkinsfile 设置中有一个我们的触发器,如下所示:
triggers {
pollSCM ""
cron "H 0 * * *"
}
似乎有一些旧的 questions 不幸的是没有具体的答案。
看起来 Branch API Plugin
和 Git client plugin
都在向 Jenkins 发送触发构建的事件。
我们通过抑制自动触发解决了这个问题。
这可以在 UI 中完成,只需转到您的工作,从左侧选择配置,然后添加 属性
Suppress automatic SCM triggering.
或者,对于代码解决方案(我最终使用的),将其添加到 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' ''
}
}
}
}
}
更新:
Julian 的答案似乎有效,但有一个错误,它不会自动触发对功能分支的推送。在我们的 Jenkinsfile 中,我们添加了:
properties([overrideIndexTriggers(true)])
尽管我们的 seedjob 中有 NoTriggerBranchProperty,这确保 git 提交仍然触发构建。
我们在使用 Bitbucket 与 Jenkins 集成时遇到了这个问题。我们的问题是,在 Bitbucket webhook 上,我们选择了来自推送和 PR 的通知。此配置在创建 PR 时创建了一个具有分支名称的作业和一个名为 PR-XXX 的第二个作业。
也许是这个原因?