Tfs Azure DevOps服务器2019保留策略不再工作

Tfs Azure DevOps服务器2019保留策略不再工作,tfs,azure-devops,azure-pipelines,Tfs,Azure Devops,Azure Pipelines,上周,我们在ADS2019.1服务器上从TFVC迁移到Git 在我们的验证管道上,我们有一个积极的保留政策。 它设置为保留2天,10个良好的版本,并清除分支过滤器*和所有复选框 ADS将其写为:+refs/heads/* 我们看到的是,自从迁移以来,没有一个Git构建被删除。从过去的8天开始,我们现在有数百个具有多GB存储空间的构建 *是要使用的正确分支筛选器吗?这是ADS输入的默认设置,我们确实希望此策略删除所有分支的所有生成 我也尝试了**,但没有改变,在构建结果页面中,我看到所有构建都是基

上周,我们在ADS2019.1服务器上从TFVC迁移到Git

在我们的验证管道上,我们有一个积极的保留政策。 它设置为保留2天,10个良好的版本,并清除分支过滤器*和所有复选框 ADS将其写为:+refs/heads/*

我们看到的是,自从迁移以来,没有一个Git构建被删除。从过去的8天开始,我们现在有数百个具有多GB存储空间的构建

*是要使用的正确分支筛选器吗?这是ADS输入的默认设置,我们确实希望此策略删除所有分支的所有生成

我也尝试了**,但没有改变,在构建结果页面中,我看到所有构建都是基于一个临时分支构建的,该分支有一个4位数字,这可能就是pull请求编号

我们如何确保按照保留策略清理生成

生成定义未链接到发布管道。构建是由开发人员创建的拉请求触发的。拉取请求被标记为已完成

另一个生成定义(具有每次提交后运行的CI触发器)似乎仍然会根据定义的保留策略删除生成

TFS保留策略设置的图片。主版本已清理,拉取请求版本未清理

TFS中最早的生成列表上周手动清理后,这些生成现在已存在4-5天,超过保留策略的2天限制。 您还可以看到它们后面没有保留锁。

已删除版本的概述。您可以在其中看到已被保留策略删除的“主”版本。

显示在2天保留策略设置后删除的主版本

Azure DevOps服务器2019保留策略不再工作

同意马特的观点。如果发布管道的工件是生成的,则生成管道将使用发布保留而不是生成保留:

因此,我们需要检查发布保留期,
项目设置
->
发布保留期

您可以从文档中检查此信息

此外,如果要无限期保留生成,则保留策略将不再适用

希望这有帮助。

您也可以尝试:

  • “保留”选项卡
  • 选择一项策略(在您的案例中为:“保留2天,[…]”)
  • 在“分支过滤器”下,添加另一个
  • 类型:“包括”,分支规范:“参考/拉动/*”
  • 解释:
    如果您在构建代理的源文件夹(名为
    s
    )中打开一个终端并运行
    git branch--all
    ,您将看到许多分支,如
    refs/pull/1234
    ,用于每个pull请求(例如1234)。此外,如果将分支规范
    *
    与左侧显示的路径(
    +refs/heads/*
    )进行比较,您会发现它实际上并不匹配所有分支…

    是否使用发布管道?发布管道上的保留时间是多少。如果您选择在发布管道上保留工件,它将使用发布保留而不是构建保留。Hi@Matt,不,我们不使用发布管道进行此定义,我已经在原始帖子中添加了更多详细信息。如果您想将此应用于所有人,为什么不删除所有分支筛选器。这是因为TFS强制您拥有一个“您必须至少添加一个分支筛选器”。感谢您的评论,我了解ADS的基本原则。此定义仅链接到拉取请求,没有与此生成定义链接的发布定义。此外,构建不会被标记为无限期保留。因此,它唯一的链接就是pull请求。但是我想我们自己不需要删除拉取请求。@Nico,谢谢您的回复。那么,这些保留管道来自拉请求?正确,此定义中的“所有”构建都是从拉请求排队的。它可能与branch filter选项有关,但默认情况下是*我认为这一定有效。我发现一个构建定义在稍早之前已经迁移到Git。在这里我发现了一些有趣的东西。此定义还配置为使用分支筛选器*删除除几天之外的所有生成。这里也没有删除任何版本,但在“已删除”选项卡中,我确实看到从12月份删除的版本。删除的原因是“生成已被保留策略删除,因为它已在30天前完成。”30天是“最大保留期”下设置的值。所以它又回到了那个背景。所以我真的怀疑这与分支过滤器有关。@Nico,确认一些信息。您指的分支过滤器是触发器选项卡下启用连续集成的分支过滤器?您可以在问题中提供一些截图,这将帮助我们更好地理解您的问题谢谢您的建议@Christian。我昨天做了这个改变,提供的广告过滤器似乎很有希望。但是今天我还没有看到删除的版本。最古老的建筑是从2020年2月18日上午7:08:59开始的,应该早在两天前。我会让它在周末像这样运行,看看会发生什么。我的过滤器现在显示:+refs/heads/*,+refs/pull/*再次感谢Christian!您的建议似乎已经解决了“此生成已被保留策略删除,因为它已在2天前完成”的问题。遗憾的是,它仍然没有解决CI生成的保留问题,只解决拉请求生成的保留问题。我也有同样的问题。我有20个构建管道(没有发布管道),在所有这些管道上,保留策略(自动清理)都不能很好地工作。昨天我在这篇文章中添加了建议过滤器
    refs/pull/*
    ,因此至少pr构建现在被删除了(在单个管道上进行了测试)。但是仍然有一个构建剩余,它是手动触发的,来自一个功能分支,应该被删除。你们有钱吗