从开发运营构建服务器的文件系统中删除工件的策略

问题描述 投票:0回答:1

背景:

我们有一个带有许多代理的本地 Azure DevOps 构建服务器。我们最近耗尽了它的磁盘空间,并发现尽管我们在 Azure Devops 中设置了 30 天的保留策略,但文件系统上仍然存在近一年前的构建工件。我已阅读下面链接的文章,并使用它们来检查我们的项目和组织保留策略。服务器上的文物的年龄表明这些文物被忽略了。

屏幕截图:

下面是保留项目设置的屏幕截图。

enter image description here

以下是我们的发布保留设置:

enter image description here

问题:

  • 如何设置策略来消除文件系统中除上次成功构建之外的所有内容的构建代理伪影?
    • 或者 X 天后未能杀死它们。
  • 为什么我无法编辑“保留策略设置”下的任何设置(除了“保留构建”复选框之外)?所有其他人均已禁用。
  • 取消选中“保留构建”实际上会做什么?

参考:

azure-pipelines azure-artifacts build-server retention
1个回答
0
投票

您链接的策略是在 Azure DevOps 中保留已发布构建工件多长时间的保留设置,而不是构建代理本身。例如,如果您导航到某个管道的管道执行历史记录,并且您的管道发布了构建工件,则系统会将在默认分支上运行的管道的工件保留 30 天。 30 天后,管道运行将从历史记录中删除。您可以在每次管道运行时覆盖此策略并选择“保留”工件。 发布管道的

retain build

设置标记要保留的链接构建生成的工件。这可以确保您的构建工件不会包含在构建工件保留策略中(如果它与正在保留的版本关联)。此设置需要项目管理员设置才能更改。 与您的场景和磁盘空间消耗有关。了解 Microsoft 提供的云托管代理在“每个作业”之后都会被回收是很有帮助的。这有助于创建更具确定性的构建:您的管道构建源中定义的内容,并且不会受到以前构建的副作用。

Azure DevOps 提供了多种不同的策略来帮助您模拟此行为:

Azure DevOps 虚拟机规模集代理

。在根据需求进行扩展的虚拟机规模集中运行代理。该策略还可以定义在空闲时拆除虚拟机的策略。创建在 Microsoft 提供的云托管代理池中运行的计划管道,该管道使用 REST API 使代理脱机,以便新构建不会排队。

    获取代理池
    • 列出代理
    • 更新代理(设置
    • enabled: false
    • 在代理上设置 cron 作业或计划任务以执行任何必要的清理活动。作业结束时,重新启动计算机,这将在启动时重新启用代理。
© www.soinside.com 2019 - 2024. All rights reserved.