Jenkins配置:实现流水线/任务按上游触发顺序执行单独构建
解决公共项目被多上游触发时的串行构建问题
核心思路
要让C先跑完A触发的构建,再启动B触发的新构建,关键就是关掉C的「相同任务合并」功能,同时限制C同一时间只能跑一个构建,让触发请求按顺序排队执行。
具体操作步骤
1. 关闭C的任务合并开关
进入项目C的配置页:
- 找「构建触发器」或者「高级项目选项」(不同Jenkins版本位置可能有点不一样)
- 把**「合并相同的队列任务」**这个选项的勾去掉(英文叫
Combine Queued Projects) - 保存配置。默认开着这个的话,Jenkins会把同一个项目的触发请求合并成一次构建,关了之后每个触发请求都会单独进队列。
2. 限制C的并发构建数
为了保证C同一时间只能跑一个构建,避免并行:
- 在C的配置里找「构建环境」或者「通用设置」
- 勾选**「限制并发构建数」**,把最大并发数设成
1 - 保存配置。这样C队列里的任务就会按触发顺序来,A的构建跑完,B的才会启动。
3. 验证配置
同时触发A和B之后:
- 看C的构建队列,能看到两个独立的任务,分别标着由A和B触发
- 先跑A触发的构建,跑完之后B触发的会自动启动
- 最后C会生成两个独立的构建记录,分别对应A和B的请求
流水线项目的额外配置(如果用Jenkins Pipeline)
如果C是流水线项目,也可以直接在Jenkinsfile里加代码强制串行:
pipeline { agent any options { disableConcurrentBuilds() // 禁止并发构建 skipDefaultCheckout() } stages { // 这里写你的构建步骤 } }
disableConcurrentBuilds() 这个指令会确保同一时间只有一个流水线实例在运行,后面的触发请求都会排队等前面的跑完。
内容的提问来源于stack exchange,提问作者Deepthi
相关产品推荐
相关产品推荐

