angular - 每个分支的 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 合并......最好的方法是什么?
解决方案
我建议ng build --prod
在您的所有阶段使用。您的应用程序应该只有一个构建阶段,用于构建应用程序并发布工件(二进制文件)以在您的部署阶段(例如 dev / prod)中使用它们。
使用这种方法,您可以在将相同的二进制文件发布到 prod 之前在测试环境中测试它们。在 prod 中,您可以为您的应用程序使用其他配置,但二进制文件本身应该是相同的。
此外,我会在您部署到生产环境之前介绍一个批准流程,而不是自动部署到它。
简而言之:创建一个多阶段管道,在推送到 dev/master 后自动构建应用程序并将其部署到您的测试环境。对于 prod 部署,添加批准检查和条件以确保只有来自 master 分支的构建才能部署到该阶段。
推荐阅读
- php - Yii2 关联数组
- excel - Excel Concat 基于 Cell 的最后一个值
- angular - Angular 8 ng2-chart 错误:RangeError:ChartElement.update 超出了最大调用堆栈大小
- powershell - Powershell - 三个或更多值的匹配条件
- python - Matplotlib 中的 X 轴打印随机数而不是年份
- amazon-web-services - terraform 抛出错误:运行计划时出现“不正确的属性值类型”
- javascript - 如何为 JavaScript 中的特定参数只调用一次函数?
- python - pygame 中的 pushMatrix、popMatrix、翻译和旋转?
- python - 无法使用 BeautifulSoup 提取脚本标签的内容
- ios - pdfView.document?.write 在真实设备上不起作用。(Xcode)