【问题标题】:How to run an ad-hoc clean build in Azure DevOps?如何在 Azure DevOps 中运行临时干净构建?
【发布时间】:2020-08-19 10:31:48
【问题描述】:

我不熟悉使用 Azure DevOps 构建/管道,因为我需要构建的解决方案的源代码在 TFVC 中,我仅限于使用经典(即 UI)构建而不是 YAML。

当我想测试对构建定义的更改时,我有时想运行一个干净的构建,即确保在新构建运行之前删除早期构建的源和工件,但保留正常构建(即由更改触发的构建) TFVC) 是增量的,以加快构建速度。

我习惯了 TeamCity,它在管理构建之间的源和工件保留方面有很多选项,包括触发手动构建时的简单“清理”复选框。 ADO Builds 在这方面似乎非常有限,如果我想要一个干净的构建,似乎唯一的选择是更改构建定义,选择干净,运行构建,然后再次更改构建定义以删除干净选项。

是否有更好的方法来管理 ADO 构建中的“临时”干净源和工件?

【问题讨论】:

    标签: azure-devops build-server


    【解决方案1】:

    这些设置是开/关。他们不接受有条件的运行时变量。

    话虽如此,您可以尝试使用“另存为草稿”选项。它似乎创建了一个可以为您的更改执行的 DRAFT 管道定义。

    您可能在发布之前将其翻转回不干净。我并没有真正使用该功能,但我会在后端猜测它使用的是不同的临时定义 ID。这可能意味着在构建代理上会在 _work 下创建一个新文件夹。如果是这种情况,您甚至可能不需要翻转干净的源,因为它在第一次运行时不存在。这也可能意味着如果这是一个自托管代理,您的工作文件夹大小将增加一倍,并且您可能必须在完成后管理该清理。

    如果它确实创建了第二个工作文件夹,这可能更可取,因为这意味着您不会在使用 clean 进行测试之后直接破坏构建上的增量构建。无论您是临时做的还是通过编辑构建定义来做的。

    【讨论】:

      【解决方案2】:

      Build.Clean 变量已弃用,您目前只能使用Clean option 清理代理上的本地 repo。

      建议您在以下网站提交用户声音,产品团队会仔细评估:

      https://developercommunity.visualstudio.com/content/idea/post.html?space=21

      一种解决方法是在管道末尾添加一个Post Build Cleanup 任务,当您想要增量运行构建时,可以禁用此任务。

      【讨论】:

      • 你查看我的回复了吗?有用吗?
      猜你喜欢
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 2017-03-17
      相关资源
      最近更新 更多