Azure DevOps自动部署后自动合并的CI/CD流水线

50次阅读
没有评论

问题描述

在使用Azure DevOps时,希望在开发环境部署成功后自动创建一个合并请求,将develop分支合并到Master分支。或者在develop分支的构建成功后自动创建一个合并请求,将develop分支合并到Master分支。用户想知道是否有办法在Azure DevOps中设置这样的规则。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

你可以使用Azure Functions来实现这个需求。创建一个触发器,并在成功的发布后启用Azure Function。
以下是一些参考文档:
使用Azure Functions创建PR状态服务器

方案2

在回答问题之前,我有一些问题需要更好地了解你的使用情况:
– 你的部署/构建有多频繁进行?
– 是否会有任何不来自develop分支的更改进入Master分支?

如果你计划对每个develop分支的更改运行此部署/构建,并创建一个合并到Master的PR,那么我建议删除develop分支,直接在Master分支上进行开发。在Master分支上启用分支策略,以在合并PR之前运行一个门控构建(编译/单元测试)。这是我团队一直以来非常成功的做法。这种工作流的改变将避免需要自动创建PR的部署/构建。

如果你计划比每个更改更少地运行此部署/构建,那么我建议使用VSTS API和自定义脚本任务来自动创建PR。我相信无论是部署还是构建运行它,脚本任务都会非常相似。VSTS API的文档非常全面,我在我们的流水线工作流中使用了其中几个(我使用PowerShell)。这是创建合并请求的文档。这将作为部署/构建的最后一个任务运行。

如果你计划从除develop分支之外的其他地方合并到Master分支,我想提醒一下,部署/构建自动创建的PR可能会有冲突,并需要手动解决。

评论:你是否会运行比仅仅单元测试更复杂的测试,例如一些自动化的浏览器测试?OP最初的场景是在部署成功后才将其移动到MASTER,而不仅仅是CI构建。

如果你需要在部署成功后进行更复杂的测试,例如自动化的浏览器测试,你可以在启用的分支策略中配置更多的构建验证步骤。这样,在合并PR之前,你可以运行更多的测试来确保部署的质量。

正文完