Continuous integration 如何在TeamCity中使用不同的预定义参数运行相同的构建

Continuous integration 如何在TeamCity中使用不同的预定义参数运行相同的构建,continuous-integration,teamcity,build-process,Continuous Integration,Teamcity,Build Process,我试图改进我们的构建过程,并使用2-3个预定义参数在单个构建上运行 说明:我们有参数C1、C2、C3和相关构建步骤B1、B2、B3的构建配置。它们相互连接C1-B1、C2-B2、C3-B3。在这个方案中,所有的工作都很好,我传递了这里提到的参数- 但我有点担心,因为B1,B2,B3是完全复制对方,这我想改善它。只有一个问题,我找不到任何机制来传递来自不同配置的参数。如果我使用%dep.机制,我只能使用来自一个配置的参数 UPD:当前方案 +---+ +---+ +---+ | |

我试图改进我们的构建过程,并使用2-3个预定义参数在单个构建上运行

说明:我们有参数C1、C2、C3和相关构建步骤B1、B2、B3的构建配置。它们相互连接C1-B1、C2-B2、C3-B3。在这个方案中,所有的工作都很好,我传递了这里提到的参数-

但我有点担心,因为B1,B2,B3是完全复制对方,这我想改善它。只有一个问题,我找不到任何机制来传递来自不同配置的参数。如果我使用
%dep.
机制,我只能使用来自一个配置的参数

UPD:当前方案

+---+   +---+   +---+
|   |   |   |   |   |
| C1|   | C2|   | C3|
|   |   |   |   |   |
+-+-+   +-+-+   +-+-+
  |       |       |
  |       |       |
+-v-+   +-v-+   +-v-+
|   |   |   |   |   |
| B1|   | B2|   | B3|
|   |   |   |   |   |
+---+   +---+   +---+
理想的方案:

+---+   +---+   +---+
|   |   |   |   |   |
| C1|   | C2|   | C3|
|   |   |   |   |   |
+-+-+   +-+-+   +-+-+
  |       |       |
  |       |       |
  |     +-v--+    |
  |     |    |    |
  |     |    |    |
  +-----> B1 <----+
        |    |
        +----+
+--++--++---+
|   |   |   |   |   |
|C1 | C2 | C3|
|   |   |   |   |   |
+-+-+   +-+-+   +-+-+
|       |       |
|       |       |
|+-v--+|
|     |    |    |
|     |    |    |

+----->B1您可以在模板中定义一个参数,例如调用它,
external.param
而不给出定义

然后,在每个配置(C1、C2和C3)中,将此参数的值定义为对特定依赖关系的引用

external.param = %dep.<source_cfg_id>.<source_param_name>%
external.param=%dep..%

在您的案例中,您可以引入TeamCity Metarunner。其思想是将多个构建步骤与参数结合起来,并将它们提取为新实体,作为构建运行程序提供


有关创建metarunner的分步说明,请参见此部分。

我应该如何在B1中定义external.param?如果我像您建议的那样定义external.param,那么在所有构建步骤(B1、B2和B3)中,它只会在一个配置上链接,您将引用相同的
external.param
。然后,在配置C1、C2和C3中,将
external.param
的值设置为specific dependency.ok,我明白了。这就是我现在所做的,但我尝试移除B1,B2,B3,只使用一个B1,因为B1,B2,B2只是复制品。所以,你做得怎么样?对不起,但这不是我要找的。我正在寻找一种减少副本数量的方法。但如果我对teamcity的意识形态理解正确,这种方式就不存在了。我应该复制构建配置。PS.编辑主要帖子