2

可以为拉取请求构建设置的最激进的构建保留策略在“清理拉取请求构建”中进行了描述

保持最少 0 次构建的策略

尽管如此,这意味着成功的 PR 构建(没有人永远需要的工件)只会在下一次自动保留清理之后被删除 - 通常是第二天,但实际上它会导致近两天不再需要的构建。


在我们的特殊情况下,似乎需要找到一种方法来尽快清理成功的 PR 构建,因为它们的频率和工件的庞大规模可能会周期性地使我们尚未完全组织起来的专用于 PR 处理的基础设施紧张(它将得到显着改进,但不会只要我们愿意,那些成功的公关构建仍然不会减少)。

据我所知,唯一的方法是手动删除构建。

虽然实现起来并不难,但我仍然想检查是否有更简单的标准方法可以自动删除成功的 PR 构建。

PS:在我们高度定制的构建过程中有一个特殊性——我们有多个依赖的工件。像创建 A 一样,使用它来构建 B,创建 C 来测试 B ......因此,尝试不使用下面建议的自定义条件在整体成功构建上发布工件并不完全可行。

4

1 回答 1

3

让我们从不同的角度来看这个问题:问题不在于保留构建,而在于您的 PR 构建正在发布工件。

您可以使这些Publish Artifacts步骤有条件,这样它们就不会在 PR 期间运行。类似的东西and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))只会在它不是 PR 的情况下使任务运行。

于 2018-10-19T16:46:58.733 回答