在TeamCity中使用全局属性或构建步骤
我的TeamCity服务器中有很多项目,用于构建和测试多个站点。我们每天晚上都使用Selenium RC测试站点,我希望重用一个步骤或配置,而不是在每个项目中使用副本 我曾研究过使用模板,但它们似乎只能从中定义的项目中访问。属性也是如此,因为我尝试在系统或环境属性中放置路径和一些共享值,并使用这些共享属性使用复制的构建步骤 但这一切都失败了,因为这些方法似乎都不适用于所有项目。你如何解决这类问题?这一定是可能的,对吧?您可以通过创建一个具有共享属性的虚拟构建配置来实现“全局属性”,然后为所有需要访问全局属性的构建创建一个构建依赖项。当调用真正的构建配置时,它将首先调用依赖的构建配置(它没有任何意义),然后从依赖配置传递属性(使用dep.bt前缀,而不仅仅是系统前缀)在TeamCity中使用全局属性或构建步骤,teamcity,Teamcity,我的TeamCity服务器中有很多项目,用于构建和测试多个站点。我们每天晚上都使用Selenium RC测试站点,我希望重用一个步骤或配置,而不是在每个项目中使用副本 我曾研究过使用模板,但它们似乎只能从中定义的项目中访问。属性也是如此,因为我尝试在系统或环境属性中放置路径和一些共享值,并使用这些共享属性使用复制的构建步骤 但这一切都失败了,因为这些方法似乎都不适用于所有项目。你如何解决这类问题?这一定是可能的,对吧?您可以通过创建一个具有共享属性的虚拟构建配置来实现“全局属性”,然后为所有需要
根据共享构建步骤中需要的逻辑,您可能能够在依赖构建中实际执行真实逻辑(它将无法从“真实”构建中继承任何属性或VCS详细信息)。根据我对您的问题的评论,您可以跨多个项目使用单个模板配置构建
请参阅TeamCity了解如何做到这一点。因为这有点过时,而且上面的答案也不完全清楚,我想我会发布我是如何使用TeamCity 8+做到这一点的 基本上,模板可以在项目及其子项目中使用。如果将模板移动到父级,则原始项目的所有同级都可以使用该模板
注意:如果模板附加到绑定到当前项目的VCS根目录,则首先必须将VCS根目录移动到尝试将模板移动到的同一级别。TeamCity有一个新功能(从8.0开始),支持全局配置/参数/环境变量。8.0支持项目组织/嵌套的新概念,并且作为该功能集的一部分,所有项目现在都从“根”项目中继承。在这个根项目上,您可以指定许多内容,包括参数等。这似乎不支持构建步骤 他们记录了这一变化 --
所以您创建了一个模板,然后将项目与该模板关联(而不是复制!),但当您修改模板属性值时,这些更改不会更新关联的项目?我不明白如何将模板与另一个项目关联。你能描述一下吗?我只见过在同一个项目中使用模板。一个旧的TeamCity博客指出,模板和配置之间的跨项目关联现在可用,并且说明了如何做it@siyw:哇,我一定错过了!这正是我想要的——带有局部参数的全局模板。很快就要试用了。我能成为一个名声扫地的妓女并把它作为一个回答吗?;)依赖构建建议非常好。目前感觉有点“黑”,但它确实如你所描述的那样有效。如果有可能将参数发送到依赖项构建,那就太好了。我会尝试一下并给出反馈。谢谢这是一种共享参数的好方法,但我将为siyw提供解决方案标记,以提供关于如何使用模板的更准确答案。请注意,6.5的文档已更改: