【问题标题】:Azure DevOps Artifacts - Retention policy clarificationAzure DevOps Artifacts - 保留策略说明
【发布时间】:2020-03-05 08:22:27
【问题描述】:

我正在尝试了解 Artifacts 提要的保留政策如何运作。

我读过这篇文章

Azure Artifacts/Delete and recover packages

但尚不清楚保留政策是仅在达到“要保留的最大版本数”时适用,还是一般适用于所有版本。无论保留政策如何,是否始终保留最新版本也不清楚。

例如,我使用以下保留政策设置了一个供稿:

Maximum number of versions per package: 10
Days to keep recently downloaded packages 2

Retention policies

然后我创建了一个管道,将构建工件作为通用包上传到提要。 从下图可以看出

Package versions

旧的软件包版本即使超过了“最长保留天数”值,仍然可供下载。

有人可以澄清一下 Azure Devops Artifacts 保留策略的实际工作原理吗?

提前致谢

【问题讨论】:

  • 启用 days to keep recently downloaded packages 后,只有在设置的天数内未下载包时,才会根据保留策略删除包。您的团队中是否有人仍在使用旧版本?
  • 不,没有人在使用它们。如果您查看我发布的最后一张图片,您会发现几乎所有软件包版本的下载次数都是 0,并且这些软件包版本肯定超过了保留天数。
  • 嗨@CeceDong-MSFT,感谢您的支持。你有机会测试它吗?有更新吗?
  • 我用一个只有一个版本的包进行了测试,并且这个版本没有被保留策略删除。如果您发布版本 >maximum number of versions,保留政策会起作用吗?
  • 是的,可以,如果超过最大值,最新版本将被删除

标签: azure-devops azure-artifacts


【解决方案1】:

从我的测试中,我发现了工件保留政策的工作原理。当包版本超过Maximum number of versions per package时,策略会检查超出的版本,如果Days to keep recently downloaded packages期间有下载的版本,策略不会删除,否则会删除超出的版本。

例如:

我有两个包含 16 个版本的包的提要,两个设置如下:

如果我从不下载任何版本,超出的最旧版本将被删除:

如果我下载了最旧的两个,那么最旧的两个暂时不会被删除,它们会在Days to keep recently downloaded packages之后被删除:

【讨论】:

  • 所以,换句话说(如果我错了请纠正我),只有当包版本总数超过“每个包的最大版本数”时才会删除一个包版本,否则即使没有人下载过它们,它们也会被永久保存。
  • 感谢您的快速回答。最后一个问题:从您的角度来看,这是一个错误还是设计的预期行为?
  • 在我看来,这是一种预期的行为。 Maximum number of versions per packageDays to keep recently downloaded packages 是组合策略。图片你发布了一个包的版本,还没用,然后就被政策删了……好像不合理。
  • 是的,即使从文档中也不清楚。最好有一个强制驱逐策略,而不需要达到每个包的最大版本数,但现在我正在谈论一个新的功能请求。
猜你喜欢
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多