【问题标题】:Is there a standard way to delete successful vnext builds (PR) just after their completion?是否有标准方法可以在完成后删除成功的 vnext 构建(PR)?
【发布时间】:2018-10-20 13:54:35
【问题描述】:

Clean up pull request builds”中描述了可以为拉取请求构建设置的最激进的构建保留策略

保持最少 0 次构建的策略

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


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

据我所知,唯一的方法是删除构建manually

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

P.S.:在我们高度定制的构建过程中有一个特殊性 - 我们有多个依赖工件。就像创建 A,用它来构建 B,创建 C 来测试 B...所以尽量不要在具有自定义条件的整体成功构建上发布工件,例如 suggested below 是不完全可行的。

【问题讨论】:

    标签: tfs azure-devops vnext


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,这是一个非常好的建议,我以某种方式错过了,尽管有一个问题我忘了提及 - 我们有多个工件。和创建 A 一样,用它来构建 B,创建 C 来测试 B...
    • 虽然也许我真的会考虑删除所有工件而不是构建本身 - 这会稍微简单一些(可以从构建本身完成)。
    • @EugenePodskal 发布工件并不会阻止构建创建它们,它只是阻止它们在构建完成后保存它们。
    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多