【问题标题】:Passing the configuration variable on teamcity在 teamcity 上传递配置变量
【发布时间】:2017-06-14 08:39:19
【问题描述】:

我在 teamcity 有一个 Job A 和 Job B,Job B 是 Job A 的依赖项(持续构建和部署作业)。在构建触发器期间,我在两个作业中使用/选择参数通道、环境和分支。因此,当我触发作业 A 的构建时,我选择了这些参数,但这些值并未在作业 B 中被拾取。

有人可以帮助我了解如何将这些参数传递到依赖项作业中。

【问题讨论】:

    标签: continuous-integration teamcity continuous-deployment


    【解决方案1】:

    您应该使用dep.<btID>.<property name> 格式从依赖构建中获取属性(有关详细信息,请参阅Dependencies Properties)。

    因此,如果作业 A 依赖于作业 B,并且作业 B 的 id 为 jobB,您可以使用 %dep.jobB.paramaterName% 引用从作业 B 获取 parameterName 参数。

    更新

    从 TeamCity 9.0 开始,可以在依赖项构建中重新定义参数。您应该使用reverse.dep.<btID>.<property name> 格式,如here 所述

    例如:如果作业 A 具有名为 reverse.dep.jobB.param 的参数(定义为构建配置参数或在自定义构建对话框中),则作业 B 可以将其用作名为 param 的参数。

    【讨论】:

    • 感谢您的快速回复,我明白您的意思了,但问题是我想在作业 B 中使用作业 A 参数。我想在依赖作业中使用父参数。跨度>
    • 好的,我明白了,所以你应该使用%reverse.dep.<btID>.<property name>%,如here所述
    • 当我使用 %reverse.dep..% 进入我的构建配置(作业 B)时,它要求我定义“reverse.dep..”在参数中(见附件)。
    • 看不到附件,顺便问一下,你的 TeamCity 是什么版本?
    • Teamcity 9.1.3 企业版
    【解决方案2】:

    我使用了一个初始化作业(我们称之为作业 C),它成为其他构建的依赖项。除了为下游构建设置通用参数之外,它并没有做太多事情。除了 Job A 对 Job B 的依赖之外,Job B 和 Job A 都具有 Job C 作为依赖项。这还允许您通过多个不同的下游构建配置级联相同的分支,并将 Job A 和 Job B 保持在同一个构建上数字(使用 %dep.x.build.number% 描述的cyberskunk)如果你愿意的话。

    不利的一面是,如果您希望任何自定义参数通过,则必须从作业 C 触发构建。这对我的用例来说不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多