部署到多个环境[TeamCity]

时间:2015-03-11 13:08:13

标签: deployment continuous-integration teamcity environment

我们在TeamCity(v.8.1.5)中有一个复杂的项目结构,我们试图在没有用户输入的情况下部署到30多个环境。

一直以来,我们一直在复制项目并使用环境变量来识别要部署的环境。这种方法的主要缺点是推出了对构建的更新。如果我们需要在我们的构建中更新单个变量,我们需要在30多个项目中执行此操作,每个项目可能包含20个构建。这一切都是一个非常耗时的过程。

如何在TeamCity设置中管理多个环境的部署?

1 个答案:

答案 0 :(得分:2)

我们部署了大约15个环境,大约30多个版本。我们有很多相同的问题,我们以各种方式解决它。

首先,正如已经提到过的人,我们使用了很多模板。在Teamcity中,如果构建模板不是您最好的朋友,那么您使用它是错误的。

其次,我们充分利用项目的层次结构,并广泛使用继承的属性。如果可以组织部署版本以最小化唯一参数值的数量(在项目树中推送常用参数),则可以节省大量时间和悲伤。例如,假设您按操作系统和版本组织项目:

Deployments
---Windows
------Vista
------W7
------W8
---Linux
------CentOS
---------6.4
---------6.5
------Ubuntu

然后,您可以对参数进行分组,例如,通过操作系统(Windows或Linux),然后对每种参数进行分类。

最后,我们通过VCS根和/或命名文件控制很多参数值。选择正确的参数文件,然后执行FIRST的小构建步骤,读取参数文件并使用TeamCity自定义构建输出语法将其值加载到当前构建中。

要选择“正确的”参数文件,您可以将它们全部保存在VCS中的公共位置(即https://svn/deployments/buildParms)并单独命名每个文件,或者您可以参数化VCS根目录以查找源中的位置控制获取文件(即https://svn/deployments/%MY_VERSON%/deploy.properties

使用上述方法的组合,我们可以有效管理15个部署环境和7个活动代码分支,总共有105种不同的部署配置。

希望这有帮助。