我的团队正在使用VSTS Build &发布机制,结合拉取请求分支安全设置,以便代码只能在拉取请求完成时合并。VSTS发布拉取请求生成触发器
我们正在经历一些奇怪的事情,因为当创建一个拉取请求(并且生成一个生成证明提交的时候) - 由pull请求触发的这个构建的完成也间接地触发了释放,因为我们有一个释放触发器设置。
这本身可能是好的,但是接下来发生的事情是'完成'拉请求,另一个版本&发布周期发生!
有没有办法让VSTS释放触发器只在拉取请求完成并且合并到发布分支时才启动?
谢谢!
我的团队正在使用VSTS Build &发布机制,结合拉取请求分支安全设置,以便代码只能在拉取请求完成时合并。VSTS发布拉取请求生成触发器
我们正在经历一些奇怪的事情,因为当创建一个拉取请求(并且生成一个生成证明提交的时候) - 由pull请求触发的这个构建的完成也间接地触发了释放,因为我们有一个释放触发器设置。
这本身可能是好的,但是接下来发生的事情是'完成'拉请求,另一个版本&发布周期发生!
有没有办法让VSTS释放触发器只在拉取请求完成并且合并到发布分支时才启动?
谢谢!
我们可以在发布触发器上指定分支过滤器,这样只有主版本才会触发发布。 PR验证构建是在不同的分支中完成的。批准后,分支合并到主控中,这就是您想要触发发布的构建。令人烦恼的是,他们不停地移动东西。在撰写本文时,编辑发行版时,在管道下的工件下的工件上,内部有一个带有闪电的圆圈,工具提示指出“连续部署触发器” - 单击它。在右侧,如果启用了触发器,您会看到“构建分支过滤器”。点击“+添加”并选择主分支。保存发布定义。
至于构建做不同的事情,我们现在可以设置任务的条件,以便您可以让一个任务只在PR验证版本上运行,或者只在主版本上运行。
https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions
这个解决方案肯定会起作用,但它并不像我想的那么优雅。这里有两个问题 - 首先我们创建了一个构建重复,这很难维护。其次,门控版本可能会有一些不必再次运行的步骤,例如lint和test(因为它们刚刚在相同的代码上成功运行)。但是,分离工件创建还需要再次运行来自门控构建的一些构建步骤。我的问题是 - 您可以提供一个解决方案,在门控和CI构建之间不存在任务重复? – kDar