【问题标题】:Trigger DevOps pipeline before another pipeline在另一个管道之前触发 DevOps 管道
【发布时间】:2021-08-23 20:27:31
【问题描述】:

我们有以下 3 个管道:

  • CI
  • CD(开发/质量保证/产品)
  • 集成测试(开发/质量保证)

当我们针对一个环境运行集成测试时,有什么方法可以确保 CD 管道首先针对给定环境运行,如果没有,则运行它?

如果 2 个人在不同的分支上工作,我们需要确保他们的特定分支是最后一个部署的分支,然后再针对该分支运行集成测试?这可能吗?

【问题讨论】:

  • 这些东西不应该是单独的管道。它们应该是单个管道中的阶段。
  • 即使它们是单个管道中的不同阶段,我们如何确保部署在集成测试之前运行?例如,Int Test 阶段失败,我们选择重新运行该阶段,但另一个开发人员已经在其他地方部署了一些更改,现在集成测试实际上是针对不同的环境运行的。
  • 每个功能分支都应该有自己独立的临时集成测试环境,必要时可以建立和拆除。

标签: azure-devops azure-pipelines devops azure-pipelines-yaml cicd


【解决方案1】:

在另一个管道之前触发 DevOps 管道

作为解决方法,我们可以在Integration Tests 管道中(在测试任务之前)添加一个内联 powershell 任务来调用 REST API Builds - Queue 以触发管道 CD 并监视此管道的状态,直到状态完成,否则等待30秒,然后再次循环,直到管道状态CD完成。

POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitionId=$defId&api-version=6.0

您可以查看my previous similar threadthis thread 了解更多详情。

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2022-07-01
    • 2020-04-22
    • 2020-06-14
    • 1970-01-01
    • 2020-10-13
    • 2020-04-13
    • 2022-08-11
    相关资源
    最近更新 更多