在TeamCity中使用全局属性或构建步骤

时间:2011-06-14 14:56:43

标签: teamcity

我的TeamCity服务器中有很多项目,用于构建和测试多个站点。我们每晚都使用Selenium RC来测试网站,我想重用一个步骤或配置,而不是在每个项目中都有副本。

我已经研究过使用模板,但它们似乎只能从定义的项目中访问。属性也一样,因为我试图在系统或环境属性中放置路径和一些共享值并使用复制的构建使用这些共享属性的步骤。

但这一切都失败了,因为这些方法似乎都不适用于各个项目。你是如何解决这类问题的?一定有可能,对吧?

4 个答案:

答案 0 :(得分:6)

根据我对您的问题的评论,您可以在多个项目中使用单个模板配置构建。

有关如何执行此操作的信息,请参阅TeamCity documention

答案 1 :(得分:3)

您可以通过创建虚拟构建配置来实现“全局属性”,该构建配置具有您的共享属性,然后需要访问您创建构建依赖项的全局属性的所有构建。当你的真实构建配置被调用时,它将首先调用依赖构建配置(没有任何意义),然后它从依赖配置传递属性(使用dep.bt前缀而不仅仅是系统前缀)。

根据您在共享构建步骤中所需的逻辑,您可能能够在依赖构建中实际执行实际逻辑(它将无法从“真实”构建继承任何属性或VCS细节)。 / p>

答案 2 :(得分:3)

TeamCity有一个新功能(从8.0开始),支持全局配置/参数/ env变量。 8.0支持项目组织/嵌套的新概念,并且作为该功能集的一部分,现在从“根”项目开始设置所有项目。在该根项目中,您可以指定许多内容,包括参数等。这似乎不支持构建步骤。

他们记录了http://youtrack.jetbrains.com/issue/TW-11202的变化。

enter image description here

-

enter image description here

答案 3 :(得分:1)

由于这有点过时了,上面的答案并不完全清楚,我想我会发布如何使用TeamCity 8 +。

基本上,模板可以在项目及其子项中使用。如果将模板移动到父项,则原始项目的所有兄弟都可以使用它。

  1. 转到模板。
  2. 单击“移动”按钮(右下方窗格)。
  3. 选择父(或根)。
  4. 注意:如果模板附加到绑定到当前项目的VCS根目录,则首先必须将VCS根目录移动到您尝试移动模板的同一级别。