我的团队正在使用VSTS构建和发布机制,结合了拉取请求分支安全设置,因此代码只能在拉取请求完成时合并。
我们遇到了一些奇怪的事情,因为当创建一个pull-request(并且生成一个构建来证明提交)时 - 由pull请求触发的这个构建的完成也会间接触发一个release,因为我们有一个release release设置。
这本身可能没问题,但接下来发生的事情就是“完成”拉取请求,另一个构建和发布周期发生!
是否有一种方法可以在拉取请求完成并合并到发布分支时启动VSTS释放触发器?
谢谢!
我们可以在释放触发器上指定分支过滤器,这样只有master的构建才会触发释放。 PR验证构建在不同的分支中完成。批准后,分支合并为master,这是您想要触发发布的构建。
令人讨厌的是,他们不停地移动东西。在撰写本文时,当在工件下的管道下,在工件下编辑一个版本时,内部有一个带有闪电的圆圈,工具提示显示“持续部署触发器” - 单击它。在右侧,如果启用了触发器,您将看到“构建分支过滤器”。单击“+添加”并选择主分支。保存发行版定义。
至于构建做不同的事情,我们现在可以在任务上设置条件,使得任务只能在PR验证构建上运行或仅在主构建上运行。
https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions
对构建任务使用条件语句来验证Build.Reason是否为“Pull Request”。
转到任务>展开“控制选项”>“运行此任务”>在此选择“自定义条件”下
在Custom条件中指定以下条件来过滤Pull Request Builds和(succeeded(),ne(变量['Build.Reason'],'Pull Request'))