【问题标题】:How to Run Azure Pipeline Builds Sequentially如何按顺序运行 Azure Pipeline 构建
【发布时间】:2020-02-19 09:24:04
【问题描述】:

我使用“经典编辑器”(即不是 yaml)创建了一个 Azure 构建管道。该构建包含两个代理作业:

工作 1 - 使用单个代理构建代码并部署以测试环境。

作业 2 - 针对测试环境并行运行测试(一次最多使用 3 个代理)。

我对此设置的问题是,如果触发了构建,并且测试正在运行中,如果触发了第二次构建,则部署到测试环境的代码将被后续构建覆盖,从而导致测试在第一个构建失败的 Job 2 中运行。

是否可以告诉构建管道仅按顺序触发构建?

我已经知道如何使用 Azure DevOps API 检查最新构建是否已完成,但我不确定如何在管道中使用它。是否可以做类似的事情:

1 - 调用 REST API 来检查最新版本的状态。

2 - 满足成功标准(即构建已完成)?如果是,则继续构建,如果不是,请稍等并再次检查。

【问题讨论】:

  • 您使用的是 Microsoft 托管还是自托管代理?

标签: azure azure-devops


【解决方案1】:

您可以在构建选项中控制它。应该根据您的描述工作。

编辑: 再次查看您的问题后,我注意到您在将应用程序部署到测试环境后正在运行测试,因此这意味着您在发布期间运行测试,因此您需要控制发布时的流程,而不是您的 buid。为此,您应该控制并行部署的最大数量:

【讨论】:

  • 当我选择该选项时,所有构建都保持排队并且永远不会启动。
  • 构建运行完成后,新的没有启动?
  • 如果我选择该选项,然后保存新构建并将其排队,则构建将无限期地保持在排队状态。
  • 抱歉,这实际上需要手动重新启用管道。 REST API 不允许更改该设置。在这种情况下,您可以使用 powershell 脚本通过使用构建定义来获取正在运行的构建,然后根据您的条件让构建运行。看到这个stackoverflow.com/questions/48860601/…
  • 哦,看起来很有希望,奇怪的是这样的事情需要自定义脚本。
猜你喜欢
  • 2021-02-09
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
相关资源
最近更新 更多