我尝试改进构建过程,并使用2-3个预定义参数在一个构建上运行。
描述:我们使用参数C1,C2,C3和相关构建步骤B1,B2,B3构建配置。它们相互连接C1-B1,C2-B2,C3-B3。在这个方案中,一切正常,我传递了这里提到的参数 - How to pass Arguments between build configuration steps in team city?,
但我有点担心,因为B1,B2,B3是完全相互复制的,我想改进它。只有一个问题我找不到任何机制来传递来自不同配置的参数。如果我使用%dep.
机制,我只能使用一个配置中的参数。
UPD :Currect scheme
+---+ +---+ +---+
| | | | | |
| C1| | C2| | C3|
| | | | | |
+-+-+ +-+-+ +-+-+
| | |
| | |
+-v-+ +-v-+ +-v-+
| | | | | |
| B1| | B2| | B3|
| | | | | |
+---+ +---+ +---+
所需方案:
+---+ +---+ +---+
| | | | | |
| C1| | C2| | C3|
| | | | | |
+-+-+ +-+-+ +-+-+
| | |
| | |
| +-v--+ |
| | | |
| | | |
+-----> B1 <----+
| |
+----+
C1,C2,C3设置配置参数
B1仅包含构建步骤,如clean, build, dist
有人可以帮我吗?有什么想法吗?
答案 0 :(得分:1)
在您的情况下,您可以介绍TeamCity Metarunner。我们的想法是将多个构建步骤与参数组合在一起,并将它们提取为新实体,可用作构建运行程序。
有关创建metarunner的分步说明,请参阅此documentation section。
答案 1 :(得分:0)
您可以在模板中定义参数,将其调用,例如external.param
,并且不进行定义。
然后,在每个配置(C1,C2和C3)中定义此参数的值作为对特定依赖项的引用。
external.param = %dep.<source_cfg_id>.<source_param_name>%