更新日期:2020年2月26日
在我们的项目中,我有一个名为"MyPipeline"的流程管道,其中恢复了NuGet包,构建了解决方案并运行了测试。
在master分支上,我设置了一条策略,用于添加代码审查者,并且它还有一个"构建验证"步骤,执行"MyPipeline"。 一切都很好。
然而,我从Master创建了另一个名为NewBranch的分支,并将其同步(推送)到Azure。 在Visual Studio中进行了一些小更改后,我进行了从主分支合并,提交并同步到Azure。
当我将更改推送到Azure的NewBranch时,看到"MyPipeline"被触发,让我感到有点惊讶。 我没有在"NewBranch"上设置分支策略。 YAML文件中的触发器是:
trigger:
- master
这是什么情况?如果这种情况继续下去,我很快就会用完我的免费代理分钟数...
更新2020年2月26日:
根据下面的评论:
主分支上的提交历史记录如下:
1.星期二晚上9:10 2.星期二晚上7:47 3.星期一下午2:46
管道执行的历史记录如下:
1.星期三早上9:14 “PR自动化”
因此,在主分支上没有新的提交。但是,我知道是什么原因引起了这个问题。只是我不确定时间是否准确...
因此,我们有两个分支,主分支和NewBranch。
主分支需要两个代码审查员批准,并且它需要构建成功。由于此政策,开发人员无法直接合并到主分支-他们必须生成拉取请求。
因此,开发人员A创建了一个拉取请求,将NewBranch合并到Master。然后进行相当漫长的代码审查过程,可能需要多次添加到“NewBranch”拉取请求才能被认为是可接受的。
似乎每次将这些新提交同步到拉取请求时,都会触发一个构建。这是一件好事吗?也许是,也许不是。如果构建只会触发一次,则应在审核完所有拉取请求中的代码之后进行编译,而不是在事先触发。为什么要在这么早的阶段触发构建;在准备合并之前,主分支可能会被多个其他拉取请求更新。然而,如果有无限的资源,那么我想尽可能经常进行构建没有害处,但是a)这可能会延迟其他构建(对其他开发人员构成障碍),b)这将使用免费代理时间的限制。