首页 > 解决方案 > 自动化多仓库 CD 管道中的部署前审批

问题描述

对不起,很长的帖子。

我有一个 Git 多仓库环境。每个 repo 代表一个项目。每个 repo 都有自己的 CI 和 CD 管道。从主题分支拉取请求合并代码以开发行。在开发分支中,触发 CD 并使用新构建的工件更新 DEV 服务器。当开发人员在 DEV 上执行和验证他们的工作时,另一个服务器 QA 会使用相同的工件进行更新。这是 CD 流水线的第二阶段。

CD 流水线

在定制的敏捷流程中,用户故事工作项类型的部分流程如下:

已部署 --> 待审核 --> 由 QA 审核

新添加的代码通过Task工作项提交和推送。因此,当任务处于关闭状态时,这意味着拉取请求已完成,代码从主题分支合并到开发分支。


任务链接到用户故事(任务是子任务)。

例如,一个用户故事(故事#A)链接到 2 个任务(任务 1 和 2)。每个任务都与一个项目(项目 1 和 2)相关。


上述逻辑由我编写的 PowerShell 脚本处理,该脚本在每个项目的 CD 管道中执行。

我的问题是如何在任务 2 完成后为每个项目 A 和 B 触发 CD 管道阶段 QA 的部署?最简单的解决方案是在每个管道的每个 QA 阶段之前添加部署前批准,但考虑到每天创建和完成数百个任务,这是一个漫长的手动过程。

提前致谢。

标签: azure-devopsazure-pipelines

解决方案


您可以考虑将查询工作项部署门添加到 QA 阶段。

在此处输入图像描述

首先,您需要创建一个如下图所示的查询来获取符合条件的任务。

在此处输入图像描述

然后在Gate中选择这个查询,并将Lower threshold(查询中匹配工作项的最小数量)设置为2,这样如果查询中关闭的任务数为2,则执行部署到 QA 阶段。但是,每次部署到QA阶段,都需要在查询中修改用户故事的ID,否则之前关闭的item也会被查询到,影响本次部署。


推荐阅读