在多仓库CD管道中自动化部署前批准

时间:2019-12-03 08:56:41

标签: azure-devops azure-pipelines

很抱歉,很长的帖子。

我有一个Git多仓库环境。每个回购代表一个项目。每个仓库都有自己的CI和CD管道。拉取请求从主题分支合并代码以开发行。从develop分支触发CD,并使用新建的工件更新DEV服务器。 开发人员在DEV上执行并验证其工作时,将使用相同的工件更新另一个服务器质量检查。这是CD管道的第二阶段。

CD pipeline

在定制的敏捷过程中,部分流程如下所述 User Story 工作项类型:

已部署->待审核->质量检查审核

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


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

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

  • 完成任务1的提取请求后,将触发项目1的CI / CD,并将代码部署在DEV服务器上。任务1处于关闭状态,但故事#A的状态保持活动状态,因为任务2尚未关闭。

  • 完成任务2的提取请求后,将触发项目2的CI / CD,并将代码部署在DEV服务器上。自任务1和2关闭以来,任务2的状态已关闭,并且Story#1的状态更改为已部署。


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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以考虑在质量检查阶段添加查询工作项部署门。

enter image description here

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

enter image description here

然后在 Gate 中选择此查询,并将Lower threshold(查询中匹配的工作项的最小数量)设置为2,以便关闭的任务数在查询为2中,执行部署到质量检查阶段。但是,在每个部署到质量检查阶段的过程中,您都需要修改查询中用户故事的ID,否则还会查询以前关闭的项目,这将影响此部署。