Jenkins配置即代码模式下如何配置Suppress automatic SCM triggering?
在Jenkins配置即代码模式下禁用自动SCM触发的方法
针对你的需求,直接在JobDSL中配置MultiBranch Pipeline的参数即可实现禁用自动SCM触发,无需在流水线Groovy脚本中修改,具体操作如下:
1. JobDSL配置示例
在定义MultiBranch Pipeline的JobDSL代码里,添加suppressAutomaticTriggering(true)配置项,就能全局禁用该多分支任务的自动SCM触发,只保留你设置的cron调度:
multibranchPipelineJob('nightly-builds') { branchSources { git { remote('https://your-repo-url.git') credentialsId('your-creds-id') includes('nightly/*') // 仅包含nightly相关分支 } } suppressAutomaticTriggering(true) // 启用禁用自动SCM触发 triggers { cron('H 2 * * *') // 每晚2点运行 } }
2. 补充说明
- 这个配置作用于整个MultiBranch Pipeline任务,启用后所有分支都不会因代码提交触发构建,完全依赖预设的cron调度执行。
- 如果需要更细粒度的控制(比如仅部分分支禁用SCM触发),可以在目标分支的Jenkinsfile中只声明cron触发器,不添加SCM触发配置:
pipeline { agent any triggers { cron('H 2 * * *') // 不设置scm触发器 } stages { // 流水线执行步骤 } }
但这种方式需要逐个修改目标分支的Jenkinsfile,不如JobDSL全局配置高效。
内容的提问来源于stack exchange,提问作者Squazz
相关产品推荐
相关产品推荐

