我的团队有一个Azure应用服务Web应用程序,其中包含三个主要组件:
这三个组件中的每一个都在VSTS中的自己的git repo中维护。此外,Web App还有三个插槽:dev
,ppe
和prod
。
我们正在尝试将构建流程从Azure迁移到VSTS。我们希望能够做到的是:
master
的新提交,请创建一个dev构建并将其直接部署到dev
插槽中的相应虚拟目录。RELEASE
分支中进行新提交还是手动触发发布过程 - 创建生成构建,将其部署到ppe
,然后在用户批准,交换ppe
和prod
广告位。这里的复杂性是,当任何组件部署到ppe
时,我们还需要将最新发布的所有三个组件版本部署到ppe
,因为Azure没有能力独立交换虚拟目录。
我目前拥有以下内容:
master
或RELEASE
时触发。它创建了开发构建和生成构建并发布它们。master
的任何新版本上触发的开发者发布过程。它从所有三个repos中的master
获取最新的dev版本,并将它们部署到dev
中的相应虚拟目录。RELEASE
上触发的生产发布过程。它从所有三个repos中的RELEASE
获取最新的生成版本,将它们部署到ppe
中的相应虚拟目录,并在用户批准时交换ppe
和prod
。< / LI>
这很有效,但看起来很笨重,有很多浪费的工作,而且我们并不觉得我们正在充分利用VSTS构建/发布管道的强大功能。是否有更好或更容易接受的方式?
答案 0 :(得分:0)
根据版本environment triggers中的工件功能,有一些过滤器,因此您可以基于构建标记来触发相应的环境。
关于构建,您可以通过PowerShell任务(name, mobile and state
)调用logging commands来设置每个当前分支的构建标记
关于ppe场景,我建议您只为ppe相关分支创建一个新的CI构建定义并构建所有组件(通过命令行任务或其他任务(例如PowerShell)调用git clone命令获取其他源代码),然后发布它们的结果,然后将它们部署到相应的插槽和发布中的虚拟目录。