我的构建工件在7或更少内消失。保留计划未配置为删除任何内容,直到工件 10天,但可能我遗漏了保留计划如何工作的内容。
一些背景知识:我通过Visual Studio Online使用TFS和在本地服务器上运行的构建代理。我在TFS中有一个构建定义,它使用Artifact Type“File share”将工件发布到本地服务器。构建定义使用默认保留计划 - 保留10天。
问题:有几次我发布了一个工件,然后在1-7天之后文件就消失了。根据_diag文件夹中的日志文件,代理程序有一个名为“删除工件”的内部作业,该作业将删除工件。上次发生这种情况时,作业删除的工件在同一天,8天前和16天前创建。 (另外值得一提的是:构建仍然在Completed下的构建历史中列出。在构建结果'Artifacts选项卡中,列出了工件。)
为什么这个删除工件作业没有过早遵守保留策略和删除工件?如何在不将我的构建配置为无限期保留的情况下解决此问题?
答案 0 :(得分:2)
问题是每个新工件都被发布到同一个文件夹,旧工件的保留计划正在删除新工件。
例如,1个月前我发布了WebApp1到C:\ artifacts \ WebApp1的工件,然后今天我发布了另一个转到同一文件夹的WebApp1工件。然后保留策略启动了上个月的构建,导致它删除了C:\ artifacts \ WebApp1,从而删除了新工件。
更令人困惑的是,如果保留政策设置为10天,则“删除工件”作业可能不一定在第10天运行。在我的情况下,大约需要30天。
我通过将构建#附加到工件名称来解决问题,以便每个工件文件夹都具有唯一的名称,例如:工件名称=“WebApp1 - $(Build.BuildNumber)”。