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

How to run the same build with different predefined parameters in TeamCity

我尝试改进我们的构建过程,并在一次构建中为 运行 使用 2-3 个预定义参数。

描述: 我们有带有参数 C1、C2、C3 和相关构建步骤 B1、B2、B3 的构建配置。他们 link 彼此 C1-B1、C2-B2、C3-B3。在这个方案中一切正常,我传递了这里提到的参数 - How to pass Arguments between build configuration steps in team city?

但我有点担心,因为 B1、B2、B3 是完全相互复制的,我想对此进行改进。只有一个问题我找不到任何机制来传递来自不同 configuration.If 的参数我使用 %dep. 机制我只能使用来自一个配置的参数。

UPD:当前方案

+---+   +---+   +---+
|   |   |   |   |   |
| C1|   | C2|   | C3|
|   |   |   |   |   |
+-+-+   +-+-+   +-+-+
  |       |       |
  |       |       |
+-v-+   +-v-+   +-v-+
|   |   |   |   |   |
| B1|   | B2|   | B3|
|   |   |   |   |   |
+---+   +---+   +---+

想要的方案:

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

C1、C2、C3设置配置参数 B1 仅包含构建步骤,例如 clean, build, dist

有人可以帮我吗?有什么想法吗?

您可以在模板中定义一个参数,调用它,例如external.param并且不给出定义。

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

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

对于您的情况,您可以引入 TeamCity Metarunner。这个想法是将多个构建步骤与参数结合起来,并将它们提取为新实体,作为构建运行器提供。

请参阅此 documentation section 以了解有关创建元运行程序的分步说明。