如何使用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
相关产品推荐
相关产品推荐

