背景:
我们有一个带有许多代理的本地 Azure DevOps 构建服务器。我们最近耗尽了它的磁盘空间,并发现尽管我们在 Azure Devops 中设置了 30 天的保留策略,但文件系统上仍然存在近一年前的构建工件。我已阅读下面链接的文章,并使用它们来检查我们的项目和组织保留策略。服务器上的文物的年龄表明这些文物被忽略了。
屏幕截图:
下面是保留项目设置的屏幕截图。
以下是我们的发布保留设置:
问题:
参考:
您链接的策略是在 Azure DevOps 中保留已发布构建工件多长时间的保留设置,而不是构建代理本身。例如,如果您导航到某个管道的管道执行历史记录,并且您的管道发布了构建工件,则系统会将在默认分支上运行的管道的工件保留 30 天。 30 天后,管道运行将从历史记录中删除。您可以在每次管道运行时覆盖此策略并选择“保留”工件。 发布管道的
retain build设置标记要保留的链接构建生成的工件。这可以确保您的构建工件不会包含在构建工件保留策略中(如果它与正在保留的版本关联)。此设置需要项目管理员设置才能更改。 与您的场景和磁盘空间消耗有关。了解 Microsoft 提供的云托管代理在“每个作业”之后都会被回收是很有帮助的。这有助于创建更具确定性的构建:您的管道构建源中定义的内容,并且不会受到以前构建的副作用。
Azure DevOps 提供了多种不同的策略来帮助您模拟此行为:
Azure DevOps 虚拟机规模集代理
。在根据需求进行扩展的虚拟机规模集中运行代理。该策略还可以定义在空闲时拆除虚拟机的策略。