例如,我有一个解决方案和多个项目。基本而言,多个项目是:
如果我想拥有一个用于REST和Admin的Azure DevOps管道,那么最好的方法是什么?
我喜欢#2,我认为如果REST改变了,那么只有REST本身会触发CI / CD。如果Admin UI发生更改,则只会触发CI / CD。如果更改了共享库,则两个CI / CD触发器。
我相信这可以用路径过滤器作为触发器。但是,如果将来我有一个新的共享Library2怎么办?我需要编辑那个新项目的管道触发器。因此,我不再确定这是否是一个好的实践(可能忘记添加触发器?)
发布于 2021-06-30 14:47:05
要回答您关于最佳实践的问题,它将以这样的方式打破部署,以尽量减少潜在的影响,同时确保合理范围内的功能,同时确保一致的集成和质量的代码流。
如果您想要保持对这两种场景的控制,我建议将这些方法结合起来。这可以通过将每个部署分解到它自己的阶段来实现,然后将该阶段与需要批准的环境联系起来。对于Dev,建议执行一张完整的CD来捕获任何可能失败的内容,然后批准您的其他环境。你的管道可能看起来是:
建造阶段:
部署Rest阶段开发
部署管理UI Web
部署共享库阶段开发
部署Rest阶段UAT..。
部署管理UI网站阶段UAT.
部署共享库阶段UAT。
对每个环境执行此模式,并配置环境审批。这将允许在每次w/o批准时在Dev中完成部署,并允许在其他环境中批准需要哪些部署。另外,如果执行多个geos/实例,则可以在该阶段的作业中调用这些数据,以允许不同组件的可伸缩性。此外,可以对作业和任务进行优化,以优化可重用性,减少复制和粘贴。
此外,如果这样做将强烈建议使用YAML模板,因为这将允许您一次性定义一个阶段所需的作业/步骤并进行重用。
https://stackoverflow.com/questions/68193117
复制相似问题