Azure DevOps构建服务器文件系统制品清理政策及相关问题咨询
问题解答
背景
我们拥有一台本地部署的Azure DevOps构建服务器,配备多台Build Agent。近期服务器磁盘空间耗尽,发现尽管已在Azure DevOps中设置30天保留策略,但文件系统中仍存在近一年前的构建制品。已检查项目及组织级保留策略,制品实际留存情况表明策略未生效。
截图
项目级保留设置截图

发布保留设置截图

问题与解答
1. 如何设置政策,仅保留最后一次成功构建的Build Agent制品,删除文件系统中的其他制品?若无法实现,如何设置X天后自动删除制品?
- 仅保留最后一次成功构建制品:Azure DevOps原生保留策略无法直接实现该规则,可通过两种方式达成:
- YAML流水线配置:在流水线YAML中添加
workspace: clean指令,每次构建前自动清理Agent旧工作目录;同时添加构建后脚本任务,手动匹配目录路径,删除当前构建以外的历史制品文件夹。 - Agent维护作业:你已部署的Maintenance Job可配置为定期扫描Agent工作目录,仅保留最新一次成功构建的文件夹,删除其余历史文件。
- YAML流水线配置:在流水线YAML中添加
- 设置X天后自动删除制品:
- 确认组织级和项目级保留策略已启用,在项目设置的「保留策略」中,将构建/发布的保留天数设为X天,同时开启「清理附属制品」选项,确保Agent本地构建产物被纳入清理范围。
- 在Maintenance Job中添加「清理旧构建目录」任务,设置按文件创建时间删除X天前的文件。
2. 为何“Retention policy settings”下除“Retain build”复选框外,其余设置均无法编辑?
主要有三种原因:
- 组织级策略锁定:组织管理员在组织层面配置了强制保留策略,项目级相关设置会被灰化,需联系管理员调整组织级策略,开放项目级编辑权限。
- 权限不足:当前操作账号没有项目级「编辑保留策略」的权限,需检查账号权限,确保拥有「项目设置管理员」或对应策略编辑权限。
- 策略继承限制:项目继承了组织级保留策略,导致项目级自定义设置被禁用,需先取消继承,才能编辑项目级具体参数。
3. 取消勾选“Retain build”具体会产生什么效果?
取消勾选后,该构建将不再受保留策略保护,按系统规则进入待清理流程:
- 构建记录会从Azure DevOps构建列表中移除,无法再查看该构建的日志、状态等信息。
- 关联的Agent本地构建制品、服务器存储的构建 artifacts 会被自动清理(前提是清理任务正常运行)。
- 若该构建被发布流水线关联使用,可能导致发布失败,因为发布过程无法找到对应构建制品。
更新
已根据建议,为Build Agent池部署了“Maintenance Job”。
内容的提问来源于stack exchange,提问作者Dib
相关产品推荐
相关产品推荐

