使用Azure DevOps部署多环境Teams服务
上篇文章(使用azure function部署teams的outgoing webhook)介绍了如何使用Azure的DevOps自动做Teams应用的CI/CD,很方便的代码一键部署。
今天跟大家简单介绍一下,如何使用Azure的DevOps进行多环境部署(开发环境,preview环境和生产环境)Teams的服务。
首先,pipeline还是沿用上次的,只是对release的definition做一下调整就可以实现。当pipeline走完以后,会根据设置触发release:
这里是一个build包,多个stage定义(开发环境DEV,PRE环境,PRD环境),这三个stage,DEV和PRE环境都是自动trigger的,并且是并行run的。但是PRD这个阶段呢,是和PRE串行的部署,等PRE部署完成(成功)以后才会自动部署。
可以看到,这里当DEV和PRE同事运行完了之后,PRE后续又跟了一个无条件自动部署的PRD,这一步会自动部署。
现在我们针对PRD做一下设置调整,因为更多情况下,PRD环境是需要谨慎操作的,比如需要某个team member来手动approve才能继续部署。
因为,我们做如下调整,在PRD的pre-deployment阶段对trigger进行配置,需要某人approve:
approvers选择某个人,timeout设置approve需要等待多久,不然就timeout(最多365天)。
当然如上图所示,还有其它的一些设置,比如Approval policies两个checkbox:触发release的人不能approve;当某个人approve了前一个stage(比如这里的PRE),当前的stage就可以跳过手动approve了。还有其它的一些配置,这里不做展开。
我们点击PRD(in progress),以为approval选择的是当前的user,所以会显示审批的操作。
点击approve(附件comment)后,PRD这个stage就会继续部署。
以上就是,当我们某个服务需要多环境多条件部署,尤其是环境比较多的时候,这种组合可以使得整个CD过程有更多的选择性,根据需要可以自行组合,很方便。
好了,这个多stage及trigger就介绍到这里,后续再跟大家分享更多的内容。