我在TeamCity中设置了顶级项目 A 。
项目 A 有一个名为 A1 的构建配置。
项目 B 是 A 的子项目。
项目 B 有一个名为 B1 的构建配置。
在这个构建配置中,我定义了两个参数:
然后,从项目 B 的构建配置( B1 ),我提取一个元流程并将其附加到 B 父项目 A 。
但是当我尝试在项目 A 的构建配置( A1 )中使用元运行程序时,此构建将不会运行;它抱怨没有定义 env.param1 。
当我查看构建步骤( A1 )或元编辑器的定义时,我可以清楚地看到 env.param1 在其中定义。但是在项目 A 的构建配置( A1 )参数页面中,它将 env.param1 列为“”。
我认为meta-runner或多或少封装了其中定义的所有内容,因此可以在任何附加它的地方使用它。来自docs:
基本上,元编辑器是一组构建的构建步骤 您可以在另一个中重用的配置;它是一个xml定义 包含构建步骤,要求和参数 利用其他构建配置的xml定义。 TeamCity的 允许使用Web UI提取元运行者。
[剪断]
点击提取按钮后,TeamCity将采用 所有构建步骤和参数在此构建配置和创建中 他们中的一员。
我做错了什么?
答案 0 :(得分:1)
metarunner正在查看项目A(即“”)中的env.param1。为避免这种情况,请在metarunner中使用特定于metarunner的变量,然后在metarunner的构建步骤中对其进行定义。这样,就不会有任何混乱。
如果要自动对事物进行参数化,则可以在构建步骤中设置特定于metarunner的变量,以引用项目A的%env.param1%。