BitBucket webhook触发 * 所有 * Jenkins多分支管道,即使是禁用了该设置的管道

vuktfyat  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(195)
  • 上下文:* 我们有一个Jenkins 2.361.3服务器和一个本地Bitbucket服务器,它带有webhook(在Push上),可以在Jenkins上为每个存储库Push触发多分支管道作业(声明性jenkinsfile模式)。为正确的分支触发构建。
  • 新场景:* 我们希望在同一个Jenkins服务器上为同一个Bitbucket存储库执行第二个“夜间”多分支管道作业,我们希望在每天的固定时间为当时存在的每个分支触发该作业。
  • 采取的操作:* 我们创建了第二个多分支管道作业,与第一个类似,但现在在jenkinsfile中使用了cron触发器,并且禁用了此设置:“将更改推送到BitBucket时构建”:

初始作业仍启用此设置。

  • 期望值:*

1.在回购推送中,只触发初始作业,夜间作业不执行任何操作。
1.当cron时间到达时,夜间作业被触发。

  • 实际值:*

1.在回购推送时,两个作业都被触发。(Jenkins重启后也是如此)
1.此外,cron触发器按预期工作。

问题: 如何配置此系统,使存储库推送仅触发初始作业,而不触发夜间作业?

看起来BitBucket插件(v223)和多分支管道插件(v716)的组合不符合“将更改推送到BitBucket时构建”设置。

  • 执行的实验:*

1.为两个作业禁用“将更改推送到BitBucket时构建”设置(并重新启动Jenkins)--〉两个作业仍由存储库推送触发
1.从BitBucket中删除webhook,并为两个作业配置“轮询SCM”--〉这可以工作,但轮询感觉不是最佳的,并增加了服务器的性能损失。

emeijp43

emeijp431#

我们使用作业Jenkins配置页面的“分支Sources”部分中的“Suppress automatic SCM triggering”属性解决了这个问题,如here所述。
“扫描多分支管道触发器”设置仅控制扫描(即使文本显示为“生成”),这将导致触发器。Suppress属性允许某个作业 * 忽略 * webhook或扫描触发器。然后该作业仅由其cron触发器触发,这正是我们所希望的。

相关问题