使用Teamcity和Octopus为不同环境部署连续构建Angular cli应用程序

使用Teamcity和Octopus为不同环境部署连续构建Angular cli应用程序,angular,environment-variables,teamcity,octopus-deploy,Angular,Environment Variables,Teamcity,Octopus Deploy,我想了解一些与我最近的经历有关的情况/想法 在我当前的项目中,我们使用相同的设置Angular cli构建生产准备包,使用teamcity执行这些命令,使用Octopus Deploy分发包。 但是我们在为不同的环境部署时遇到了一些问题 形势 Azure上有4个环境:开发、测试、暂存和生产。 我们希望的是,每当我们的主分支被推送时,TeamCity都会构建应用程序,通过自动部署到开发将其推送到octopus,并通过octopus webapp将其推广到其他环境 我们在Azure上还有4个后端环境

我想了解一些与我最近的经历有关的情况/想法

在我当前的项目中,我们使用相同的设置Angular cli构建生产准备包,使用teamcity执行这些命令,使用Octopus Deploy分发包。 但是我们在为不同的环境部署时遇到了一些问题

形势 Azure上有4个环境:开发、测试、暂存和生产。 我们希望的是,每当我们的主分支被推送时,TeamCity都会构建应用程序,通过自动部署到开发将其推送到octopus,并通过octopus webapp将其推广到其他环境

我们在Azure上还有4个后端环境,每个环境都有自己的IP地址

方法1 从角度来看,这种方法非常干净,但从Teamcity-->Octopus(适用于所有环境的单一软件包)来看,则完全不干净

在这种方法中,我们有不同的environment.ts文件,其中包含服务使用的配置API端点

每次推送时,我们的Teamcity会为每个环境执行一个ng构建,为该构建创建一个包,并将其推送到octopus。因此,octopus可以为每个构建获得4个包,以便在Azure上部署到正确的环境中

从一个角度来看,这非常有效,本地开发人员在提交代码之前不必做任何本地更改,端点在部署包中烘焙

但从Teamcity-->Octopus的角度来看,这并不干净,这些平台的组合使得Teamcity每次代码推送生成一个包,然后Octopus将该包部署到不同的环境中(并针对不同的环境使用变量进行一些文件转换)

方法2 第二种方法适用于Teamcity-->八达通部分。 在Angular应用程序中,我们编写了一个服务,用于从/assets文件夹中的.json文件获取应用程序设置,例如API端点

这种方法很好,因为Teamcity可以构建1个包,然后八达通可以从包的资产中操作.json文件

但是这种方法听起来不太可靠,因为我们正在做一个http请求来获取我们的应用程序设置,而我们觉得这些东西应该在应用程序中烘焙


我想对这些方法有一些见解,因为我不是团队城市章鱼组合的专家,我想知道是否有人遇到过这种情况,以及“银弹”可能是什么。

可能类似于?我想这正是我一直在寻找的,但在任何地方都找不到的,我必须提高我的搜索技能。。。非常感谢。欢迎:)非常有用的问题thx的可能副本。