You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline是否有展示Rebuilder重建信息的环境变量?

关于Jenkins Rebuilder插件1.31版本的Pipeline重建识别方案

嘿,刚好我对这个插件的使用有过相关经验,给你分享下可行的解决办法:

Rebuilder插件本身并没有直接提供currentBuild.rebuild这类简洁的属性,但它会给重建的构建添加一个专属的构建触发原因(Build Cause),我们可以通过这个来判断是否是重建任务,以及获取原构建的编号。

具体实现思路

当任务由Rebuilder触发重建时,构建的buildCauses列表中会包含一个hudson.plugins.rebuild.RebuildCause类型的对象,里面就存储了原构建的信息。你可以在Pipeline脚本里通过遍历这个列表来提取相关数据。

Pipeline脚本示例

// 初始化变量
def isRebuild = false
def originalBuildNum = null

// 遍历所有构建触发原因
currentBuild.buildCauses.each { cause ->
    // 匹配Rebuilder插件的专属触发原因
    if (cause.class.name == 'hudson.plugins.rebuild.RebuildCause') {
        isRebuild = true
        // 获取原构建的编号
        originalBuildNum = cause.originalBuild?.number
    }
}

// 根据结果输出信息或执行对应逻辑
if (isRebuild) {
    echo "✅ 这是由Rebuilder触发的重建任务,原构建编号:#${originalBuildNum}"
} else {
    echo "🔄 这是一次全新的构建任务"
}

补充说明

  1. 你在控制台看到的Rebuilds build #12这条日志,正是Rebuilder插件通过这个RebuildCause对象生成的,所以这个判断逻辑和Jenkins识别重建任务的逻辑是完全一致的。
  2. 如果你想通过环境变量快速判断,也可以尝试检查env.BUILD_CAUSE变量——当是重建任务时,这个变量的值会包含RebuildCause的相关标识,但相比遍历buildCauses,这种方式的可靠性稍弱(比如多原因触发时可能会有干扰),所以更推荐上面的buildCauses遍历方案。

内容的提问来源于stack exchange,提问作者Cloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:22:09