Groovy的build方法能否在任务完成后返回构建ID与构建状态?
Jenkins Pipeline Groovy语法中,build步骤在默认等待下游任务执行完成后返回的buildData对象,确实包含你需要的构建ID和构建状态,还支持获取多个构建相关的核心属性。
需求字段获取方式
你需要的两个核心信息可以直接通过返回对象获取:
- 构建ID:调用
buildData.id或者buildData.getId(),返回值为本次构建的唯一数字ID,和构建详情页URL中的编号一致 - 构建状态:调用
buildData.result或者buildData.getResult(),返回字符串类型的构建结果,常见取值包括SUCCESS/FAILURE/ABORTED/UNSTABLE/NOT_BUILT
其他可获取的常用属性
除上述字段外,你还可以从返回对象中获取以下信息:
- 构建显示名称:
buildData.displayName,通常是带编号和参数标识的名称,例如#456 (env=test) - 构建详情页完整URL:
buildData.absoluteUrl - 构建启动时间戳:
buildData.timeInMillis,返回13位毫秒级时间戳 - 构建触发原因列表:
buildData.buildCauses,包含触发用户、触发方式等信息 - 构建运行状态标识:
buildData.building,布尔值,标识构建是否还在运行中(默认配置下build步骤会等待构建完成再返回,因此该值为false)
使用示例
// 触发下游任务并等待执行完成 def buildData = build(job: 'xyz', parameters: [string(name: 'env', value: 'prod')]) // 提取需要的信息 def targetBuildId = buildData.id def targetBuildStatus = buildData.result println "下游构建ID:${targetBuildId},构建结果:${targetBuildStatus}"
注意:如果你调用
build时添加了wait: false参数,方法会在触发任务后立刻返回,此时返回对象仅包含基础任务信息,无法获取最终构建状态,需要后续自行轮询查询构建结果。
内容的提问来源于stack exchange,提问作者Aayush
相关产品推荐
相关产品推荐

