Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 部署到多个环境[TeamCity]_Deployment_Continuous Integration_Teamcity_Environment - Fatal编程技术网

Deployment 部署到多个环境[TeamCity]

Deployment 部署到多个环境[TeamCity],deployment,continuous-integration,teamcity,environment,Deployment,Continuous Integration,Teamcity,Environment,我们在TeamCity(8.1.5版)中有一个复杂的项目结构,我们试图在没有用户输入的情况下将其部署到30多个环境中 一直以来,我们都在复制项目并使用环境变量来标识要部署到的环境。这种方法的主要缺点是对构建进行更新。如果我们需要全面更新构建中的单个变量,我们需要在30多个项目中进行更新,每个项目可能包含20个构建。这是一个非常耗时的过程 如何在TeamCity设置中管理到多个环境的部署?我们有大约15个部署到的环境,以及大约30多个版本。我们有很多相同的问题,我们用不同的方法解决 首先,正如有人

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

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


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

我们有大约15个部署到的环境,以及大约30多个版本。我们有很多相同的问题,我们用不同的方法解决

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

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

Deployments
---Windows
------Vista
------W7
------W8
---Linux
------CentOS
---------6.4
---------6.5
------Ubuntu
然后,您可以对参数进行分组,例如,按操作系统(Windows或Linux)分组,然后按每个参数的风格分组

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

要选择“正确”的参数文件,您可以将它们全部保存在VCS中的一个公共位置(即),并对每个文件进行唯一命名,或者您可以参数化VCS根目录,以在源代码管理中找到获取该文件的位置(即

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


希望这能有所帮助。

您正在使用模板,对吗?谢谢您的回答,因为我们提出了这个问题。我们已经实施了与您所描述的类似的设置。使用模板处理生成的更新,使用项目级参数处理环境变量