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

Jenkins如何根据运行条件设置不同构建的差异化保留时长?

Jenkins 按条件动态设置构建保留时长方案

Jenkins 原生 Declarative Pipeline 完全支持该需求,无需额外安装插件,你可以通过内置属性动态调整单个构建的保留规则,实现不同条件下的差异化留存时长。

具体实现方案如下:

  • 原生无插件实现方式
    先配置全局默认的构建保留规则,再在Pipeline执行逻辑中插入条件判断,动态修改当前构建的留存时长,参考代码示例:
    pipeline {
        agent any
        // 配置默认规则:常规构建仅保留7天
        options {
            buildDiscarder(logRotator(daysToKeepStr: '7', numToKeepStr: '-1'))
        }
        stages {
            stage('业务执行') {
                steps {
                    script {
                        // 此处替换为你的实际业务逻辑,获取condition1、condition2的判断结果
                        if (condition1) {
                            // 满足条件1:保留30天(参数单位为毫秒)
                            currentBuild.setRetentionTime(30 * 24 * 60 * 60 * 1000)
                        } else if (condition2) {
                            // 满足条件2:保留180天
                            currentBuild.setRetentionTime(180 * 24 * 60 * 60 * 1000)
                        }
                    }
                }
            }
        }
    }
    

    注意:如果使用的Jenkins版本较旧不支持setRetentionTime方法,也可以将符合条件的构建设置为currentBuild.keepLog = true永久保留,再搭配全局定时清理脚本按规则二次清理,也能实现同等效果。

  • 可选插件方案(非必需)
    如果你需要适配更复杂的多维度保留规则,可选择安装Build Retention Plugin类扩展插件简化配置,但上述原生方案已经可以完全覆盖你提出的需求,无需额外引入插件依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:02