Jenkins Build Pipeline任务能否生成带构建号的树状调用视图?
实现构建流水线的树状依赖视图与文本列表
当然可以实现!针对你提到的用「Trigger build on other projects」触发下游任务的构建流水线,有两种主要方式来生成包含子任务、执行顺序(串行/并行)及构建编号的树状视图/文本列表,下面给你详细拆解:
1. 原生插件可视化方案(开箱即用)
首推使用Build Pipeline Plugin——这个插件就是专门为可视化上下游构建依赖而生的,完美适配你说的场景:
- 配置完成后,你可以直接在插件视图里选择顶层构建(比如
vac-3.0-src #123),就能展开看到完整的触发树:- 串行触发的任务会按执行顺序依次排列在一条主线上
- 并行触发的任务会以分支组的形式展示,一眼就能区分开并行批次
- 每个任务节点都会清晰标注对应的构建编号(比如
sub-project #45),点击节点还能直接跳转到该构建的详情页
- 如果你用的是Jenkins Pipeline(声明式/脚本式),也可以用Pipeline Stage View Plugin,它能自动识别
build步骤触发的上下游任务,生成类似的树状视图。
2. 自定义文本格式树状列表(按需导出)
如果需要生成纯文本格式的树状结构(比如你期望的文本样式),可以通过Groovy脚本在顶层构建的构建后操作里实现:
- 编写一段Groovy脚本,调用Jenkins的内部API获取当前构建触发的所有下游任务:
- 先通过构建的
cause对象,筛选出由当前构建直接触发的子构建 - 区分串行/并行:串行任务按触发时间排序,并行任务会带有相同的触发批次标记
- 生成类似如下的文本结构:
vac-3.0-src #123 ├─ 串行触发:sub-build-a #45 ├─ 并行组1: │ ├─ sub-build-b #67 │ └─ sub-build-c #68 └─ 串行触发:sub-build-d #70 - 你可以把这段文本保存为构建产物(Artifact),或者直接输出到构建日志里,方便后续查看或导出。
- 先通过构建的
3. 几个关键注意点
- 确保所有上下游项目都开启了「允许被其他项目触发」的权限,不然插件和API无法获取到触发关系
- 如果是并行触发任务,需要在「Trigger build on other projects」步骤里勾选「并行执行」选项,这样插件和脚本才能识别出并行批次
- 历史构建的触发关系只要没被Jenkins的清理策略删除,都可以通过插件视图或脚本回溯查询
内容的提问来源于stack exchange,提问作者AKS
相关产品推荐
相关产品推荐

