首页 > 解决方案 > 每个分支的 Azure Devops azure-pipelines.yml

问题描述

我有一个带有 dev 和 master 分支的 Angular 项目,并且想要以下内容:Azure Devops 中的测试环境和生产。当某些东西被提交给 dev 时,我希望将 dev 分支代码部署到测试环境中,当代码提交给 master 时,我希望将 master 分支部署到生产环境中。

我的问题如下:我需要 2 个基于“ng build --dev”和“ng build --prod”的工件。我怎样才能做到这一点?我是否需要将“azure-pipelines.yml”文件添加到 master 和 dev 分支?如果是这样,如果我将 dev 合并到 master,来自 dev 的“azure-pipelines.yml”将与 master 合并......最好的方法是什么?

标签: angularazuredeploymentazure-devops

解决方案


我建议ng build --prod在您的所有阶段使用。您的应用程序应该只有一个构建阶段,用于构建应用程序并发布工件(二进制文件)以在您的部署阶段(例如 dev / prod)中使用它们。

使用这种方法,您可以在将相同的二进制文件发布到 prod 之前在测试环境中测试它们。在 prod 中,您可以为您的应用程序使用其他配置,但二进制文件本身应该是相同的。

此外,我会在您部署到生产环境之前介绍一个批准流程,而不是自动部署到它。

简而言之:创建一个多阶段管道,在推送到 dev/master 后自动构建应用程序并将其部署到您的测试环境。对于 prod 部署,添加批准检查和条件以确保只有来自 master 分支的构建才能部署到该阶段。


推荐阅读