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

GitLab是否支持将制品过期策略设置为下次成功构建时过期?

GitLab制品配置"新构建成功后自动删除旧制品"实现方案

GitLab没有提供名为next-successful-build的开箱即用配置项,单靠job配置里的expire_in参数确实仅支持设置天、周、月这类固定过期时长,无法绑定构建成功事件触发旧制品删除,但完全可以通过内置能力实现你要的保留效果。

具体实现方式:

  • 不用局限在expire_in参数上做调整,GitLab在项目、群组层级的CI/CD设置里自带了按成功流水线次数保留制品的规则,优先级比单job的expire_in配置更高
  • 打开对应项目的「设置 > CI/CD > 制品」配置页,找到保留策略板块,把「每个分支/标签保留最近成功流水线的制品数量」参数值设为1,就能达到预期效果:系统会始终保留最新1次成功构建生成的制品,等新的构建任务跑成功、生成新的对应制品后,上一版的旧制品会被自动清理,不需要人工干预
  • 这个内置能力不需要你额外写脚本调用API做自定义处理,稳定性比自行实现的逻辑高很多

如果有更细分的保留需求,比如生产环境标签的制品永久保留、测试分支只留最新1版、开发分支留最近3版,也可以在同一个配置页添加多组匹配规则,按分支名、标签名匹配后设置差异化的保留数量即可。

补充:如果你使用的是13.0以前的老旧GitLab版本,没有内置按次数保留的能力,才需要在CI流水线的收尾步骤添加自定义清理脚本,通过API删除对应分支的历史旧制品来实现同等效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:21:36