首页 > 解决方案 > Azure DevOps 构建验证 - 使用现有 CI 运行

问题描述

我在 Azure DevOps 中设置了一个带有功能/主工作流的小项目,其中主工作流以两种方式受到保护:

在此处输入图像描述

不幸的是,这与 CI 相矛盾:我的 CI 构建被定义为在远程每次提交时运行(据我所知,这是获得快速反馈的最佳实践)。问题是,Azure DevOps 无法识别“提交触发器”CI 构建,要么启动另一个,要么开发人员需要手动启动 CI 以完成构建策略。 在此处输入图像描述

根据我对 Bamboo 等工具的记忆,这应该是一个工作流程:策略在最后一次运行时不需要特定的源,例如 PR 触发器的 Commit 触发器。Microsoft 是否故意改变了这里的概念,或者是否有一种解决方法可以在不需要两次运行的情况下同时设置触发器(PR 和提交)?

标签: gitazure-devops

解决方案


当您在 PR 中定义构建策略时,该构建必须在您创建 PR 时运行,无论此构建是否由 CI 触发。

原因很简单,CI构建运行在分支源代码(例如feature分支)上,这在PR中是不够的,因为即使CI构建通过了,他在feature分支上传递,你不知道它是否会通过在master分支。

因此,当创建 PR 时,ADO 会随着master分支的更改触发在分支上运行的新构建feature,并且当此构建通过时,您可以确定合并不会破坏master代码。

ADO 如何检查合并前masterfeature更改?在幕后,构建在本地进行合并,并在此合并上运行构建。


推荐阅读