将环境变量(参数)传递给TeamCity中的依赖项目

Mat*_*ias 13 teamcity continuous-integration environment-variables

我有一个包含两个项目的构建链:A是根项目,B依赖于它.B配置了两个依赖项:工件和快照依赖项.B的一个构建配置具有环境变量(参数)集.但是,我还需要为根项目A设置此参数.

TeamCity 9中是否有任何方法可以将构建配置参数从项目传递到其依赖项(在同一构建链中)?

Ali*_*ina 15

从TeamCity 9.0开始,可以通过在依赖构建中重新定义它们来覆盖依赖项参数:

reverse.dep.<btID>.<property name>
Run Code Online (Sandbox Code Playgroud)

  • 例如,将环境变量 `env.myvariable` 传递给依赖快照:在根配置中创建一个名为:`reverse.dep.*.env.myvariable` 的配置变量(可以选择将通配符替换为特定的构建 ID) (2认同)

Bro*_*ass 5

对于TeamCity 8及更低版本,遗憾的是,传递参数的唯一方法是在构建链的方向 - 与您想要的相反 - 这些属性称为依赖项属性:

依赖属性

这些是当前构建所依赖的构建提供的属性(通过快照或工件依赖性).

依赖项属性具有以下格式:

dep.<btID>.<property name>

依赖属性从树的根到其叶子(在构建链流的方向上),但不是相反的方向,因此可以在B中访问A的属性.

这是明确的文档在这里:

依赖构建中的参数

TeamCity提供了使用当前构建所依赖的构建提供的属性的能力(通过快照或工件依赖性).当构建A依赖于构建B时,您可以将构建B中的属性传递给构建A,即属性只能在构建链流的方向上传递,反之亦然.有关如何使用链中先前构建的参数的详细信息,请参阅"依赖项属性"页面.

我之前也有类似的反向流程用例 - 解决方法并不漂亮 - 基本上不是直接触发构建链我们会触发一个独立的构建(让我们称之为X),只有那里才能保存构建参数 - 然后修改构建链以使根构建(在您的情况下为A)依赖于X的最后成功构建并且在成功构建X时具有构建链触发器 - 这应该实现您想要的.

对于TeamCity 9,请参阅@ Alina的答案(应该是接受的答案).