Jenkins多分支流水线DSL配置:禁用Bitbucket自动构建求助
解决Jenkins DSL配置多分支流水线禁用自动SCM触发的问题
我明白你遇到的痛点了——在你当前使用的Jenkins版本和插件组合下,确实没有现成的高阶DSL函数来配置"Suppress automatic SCM triggering"选项。不过我们可以通过configure块直接操作Jenkins的底层XML配置来搞定这个需求。
具体修改方案
你需要在现有的configure块中,定位到Bitbucket源的配置节点,手动添加suppressAutomaticTriggering元素并设置为true。修改后的代码片段如下:
multibranchPipelineJob("job") { // 保留你原有的其他配置项 configure { node -> // 定位到分支源的核心节点 def branchSource = node / sources / data / 'jenkins.branch.BranchSource' // 定位到Bitbucket源节点(注意class属性要和你现有代码完全匹配) def bitbucketSource = branchSource / source(class: 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource') // 添加禁用自动SCM触发的配置 bitbucketSource << 'suppressAutomaticTriggering'(true) } }
关键细节说明
- 为什么用configure块?:你使用的Bitbucket Branch Source Plugin 2.2.10版本的DSL封装还没有覆盖这个属性,所以需要直接操作Jenkins的配置XML结构来补全这个设置。
- class属性要匹配:确保
source节点的class属性和你现有代码完全一致(你提到的co...应该是com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource的缩写,补全或保持原有写法都可以)。 - 验证配置:运行DSL任务后,进入多分支流水线的配置页面,确认"Suppress automatic SCM triggering"选项已经被勾选即可。
这样修改后,Jenkins扫描分支时就不会立即触发构建了,只会响应手动触发或你配置的其他触发规则(比如定时任务)。
内容的提问来源于stack exchange,提问作者Prakash Dharmalingam
相关产品推荐
相关产品推荐

