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

如何使用Groovy在Cloudbees Jenkins中配置Global build discarder

Jenkins Groovy 配置 Global Build Discarder 全局构建丢弃方案

以下脚本可直接在Jenkins脚本控制台运行,完成全局构建丢弃规则的配置:

import jenkins.model.Jenkins
import com.cloudbees.jenkins.plugins.globalbuilddiscarder.GlobalBuildDiscarderConfiguration
import com.cloudbees.jenkins.plugins.globalbuilddiscarder.BackgroundGlobalBuildDiscarder
import hudson.tasks.LogRotator

// 获取Jenkins实例
Jenkins jenkins = Jenkins.get()

// 加载全局构建丢弃配置实例
GlobalBuildDiscarderConfiguration globalConfig = GlobalBuildDiscarderConfiguration.get()

// 定义全局丢弃规则,与系统配置页选项一一对应
// LogRotator构造参数顺序:保留构建天数、保留构建最大数、保留制品天数、保留制品最大数
// 无限制的项填-1即可,示例配置为:保留最近90天/最多100个构建,制品规则与构建一致
LogRotator discardRule = new LogRotator(90, 100, -1, -1)

// 写入规则到配置
globalConfig.setBuildDiscarder(discardRule)

// 可选:配置不应用全局规则的排除任务
// globalConfig.setExcludedJobs(["生产部署任务", "核心版本归档"])

// 保存配置
globalConfig.save()
jenkins.save()

// 可选:立即执行一次全局构建丢弃,无需等待定时触发
BackgroundGlobalBuildDiscarder.instance.doRun()

println "全局构建丢弃规则配置完成"

常用操作说明

  • 规则调整:修改LogRotator的四个入参即可匹配你的保留需求,参数含义和手动配置页面的选项完全一致
  • 查看当前配置:运行以下脚本即可打印现有全局规则
import com.cloudbees.jenkins.plugins.globalbuilddiscarder.GlobalBuildDiscarderConfiguration

def config = GlobalBuildDiscarderConfiguration.get()
def rule = config.getBuildDiscarder()
println "当前全局构建保留规则:"
println "构建保留天数:${rule.getDaysToKeep() < 0 ? '不限制' : rule.getDaysToKeep()}"
println "构建保留最大数:${rule.getNumToKeep() < 0 ? '不限制' : rule.getNumToKeep()}"
println "制品保留天数:${rule.getArtifactDaysToKeep() < 0 ? '与构建一致' : rule.getArtifactDaysToKeep()}"
println "制品保留最大数:${rule.getArtifactNumToKeep() < 0 ? '与构建一致' : rule.getArtifactNumToKeep()}"
println "排除任务列表:${config.getExcludedJobs().join('、')}"

注意:运行脚本前建议先在测试环境验证规则合理性,避免误删重要构建记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:06:08