我和我的团队正在努力在ADO中实现一个特定的CI/CD模式。
我们定义了一个名为"Develop“的构建管道和一个同名的释放管道。我们已经为我们的开发部门设置了一个建设政策,要求“开发”建设管道在完成PR之前成功。我们也有审查/批准、评论解析和链接工作项的策略。
正如预期的那样,当一个PR被提升时,我们的策略中引用的构建就会被启动。同样,如预期的那样,在此构建成功之前,PR无法完成。但是,我们遇到的问题是,因为我们在发布管道上设置了CD触发器,由PR触发的构建生成的工件总是会被部署,而不管其他PR策略的状态如何。
我们想要的顺序是:
在修改了管道的变体后,我尝试简单地设置“扣动请求触发器”,而不是在发布管道上设置“连续部署触发器”。我假设这将需要一个PR已经导致了工件的创建,和完成了PR。我的假设是错误的。通过这种新的设置,提高PR触发了构建管道,而构建管道的成功触发了释放管道,即使PR尚未完成。
我们的构建管道构建解决方案,运行测试,运行一些PowerShell脚本,最后将工件发布到Azure管道。也许这做得太多了。也许有一些方法可以构建、运行测试和脚本,然后在将工件传递到发布管道之前等待PR完成。我就是搞不懂。有什么方法可以完成我上面列出的顺序吗?
简言之,要求:
发布于 2019-10-25 10:03:00
从你的描述中有一些关于公关触发的误解。
您可以配置拉请求触发器,当拉请求上传工件的新版本时,该触发器将创建一个新版本。启用触发器,并添加要激活此触发器的拉请求所针对的分支。 拉请求触发器
但是,对于CD触发器,如果只希望在编译来自特定分支的代码(仅当代码位于TFVC、Git或GitHub存储库中)或生成具有特定标记时才创建版本,则可以添加构建分支筛选器。它们可以是包含过滤器,也可以是排除过滤器。例如,使用features/*将所有构建都包含在特性分支下。还可以在筛选值中包括自定义变量。
或者,您可以指定一个过滤器来使用在构建管道中指定的默认分支。例如,当默认构建分支在每个开发sprint中发生更改时,这是非常有用的。这意味着您不需要在所有发布管道上更新触发器筛选器,只需更改构建管道中的默认分支即可。
更多细节请看一下杰夫·谢普勒在这个类似问题中的回答:VSTS发布拉出请求生成触发器
https://stackoverflow.com/questions/58549847
复制相似问题