我的构建工件会在 7 天或更短的时间内消失。但是,在工件至少10 天之前,保留计划不会配置为删除任何内容,但也许我遗漏了保留计划如何工作的一些内容。
一些背景:我通过 Visual Studio Online 使用 TFS 以及在本地服务器上运行的构建代理。我在 TFS 中有一个构建定义,它使用“文件共享”的工件类型将工件发布到本地服务器。构建定义使用默认保留计划——保留 10 天。

问题:我多次发布了工件,然后在 1-7 天内文件就消失了。根据 _diag 文件夹中的日志文件,代理有一个名为“Delete Artifacts”的内部作业,该作业正在删除这些工件。上次发生这种情况时,作业删除了当天创建的工件、8 天前创建的其他工件以及 16 天前创建的其他工件。(还值得一提的是:即使文件已被删除,构建仍会在“已完成”下的构建历史记录中列出,并且工件仍会在构建结果的“工件”选项卡中列出。)
为什么此删除工件作业不遵守保留策略并过早删除工件?如何解决此问题而不将我的构建配置为无限期保留?
问题在于每个新工件都被发布到同一个文件夹,而旧工件的保留计划正在删除新工件。
例如,1 个月前,我将 WebApp1 的工件发布到 C:\artifacts\WebApp1,然后今天我发布了另一个位于同一文件夹的 WebApp1 工件。然后,保留策略在上个月的构建中生效,导致它删除 C:\artifacts\WebApp1,从而删除新的工件。
更令人困惑的是,如果保留策略设置为 10 天,“删除工件”作业可能不一定在第 10 天运行。在我的例子中,它又花了 20 天。
我通过将构建 # 附加到工件名称来解决该问题,以便每个工件文件夹都有一个唯一的名称,例如:Artifact Name = "WebApp1-$(Build.BuildNumber)"。
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |