如何从Jenkins子作业获取父Build Flow作业的名称与构建编号
在Jenkins Build Flow子作业中通过Groovy获取父作业名称与构建编号
完全可以通过Groovy API实现这个需求,Jenkins的构建对象会保留上游触发构建的关联信息,直接调用相关方法即可提取父作业的信息。
实现代码示例
在子作业的DSL脚本中添加以下代码:
// 获取当前子作业的构建对象 def currentBuild = manager.build // 获取所有上游构建(父作业的构建实例) def upstreamBuilds = currentBuild.getUpstreamBuilds() if (upstreamBuilds != null && !upstreamBuilds.isEmpty()) { // 取第一个上游构建(通常就是触发当前子作业的父作业构建) def parentBuild = upstreamBuilds.first() // 提取父作业名称与构建编号 def parentJobName = parentBuild.project.name def parentBuildNumber = parentBuild.number // 输出信息(也可根据需求用于后续逻辑) println "父作业名称:${parentJobName}" println "父作业构建编号:${parentBuildNumber}" } else { println "未检测到触发当前作业的上游父作业" }
注意事项
- 如果子作业可能被多个不同的父作业触发,需要根据实际业务场景添加判断逻辑,确保获取到正确的上游构建。
- 确保执行脚本的Jenkins账号拥有访问上游作业与构建信息的权限,避免因权限不足导致获取失败。
内容的提问来源于stack exchange,提问作者Thiagarajan Hariharan
相关产品推荐
相关产品推荐

