【发布时间】:2013-07-16 14:31:47
【问题描述】:
我正在寻找一种在多个构建配置之间共享构建号的方法。目标是拥有某种类型的全局计数器,并且所有构建配置都会递增它并在自己的构建号中使用它。
【问题讨论】:
标签: teamcity
我正在寻找一种在多个构建配置之间共享构建号的方法。目标是拥有某种类型的全局计数器,并且所有构建配置都会递增它并在自己的构建号中使用它。
【问题讨论】:
标签: teamcity
我相信 AutoIncrementer 插件应该可以解决问题。它允许您在配置之间共享内部版本号。 http://confluence.jetbrains.com/display/TW/Autoincrementer
【讨论】:
如果构建配置A之一对构建配置B具有快照或工件依赖,那么您可以借助依赖参数从A中的B获取构建号:
%dep.<B id>.build.number%
其中 是构建配置 B 的 id(参见 URL 中的 buildTypeId 参数)。
【讨论】:
AutoIncrementer 很好,但现在有一个新插件试图做一些用户说他们不能用 AutoIncrementer 做的事情:
http://java.nicholaswilliams.net/TeamCityPlugins/introduction#SharedBuildNumber
当您将其添加到 TeamCity 时,它有一个 UI,并且还可以处理您可能想要使用的格式的日期使用。
【讨论】:
您可以按照以下步骤让一个 Team City 项目使用另一个项目的内部版本号:
为您要导入内部版本号的配置打开 TeamCity 项目配置的属性。
转到“依赖项”部分。
添加“工件依赖项”并选择要从中获取内部版本号的项目配置作为依赖项目。
在“Get artifacts from”字段中选择“Build with specified build number”
在“内部版本号”输入框旁边有一个按钮,您可以单击以选择从何处获取内部版本号。在此列表中,您应该会看到类似“dep.bt2.build.number”的选项(对于您的配置,该数字可能不是 2)。
【讨论】:
这个解决方案对我有用:
运行您的项目构建。首先它应该启动“GenerateBuildNumber”项目,然后你的项目使用生成的数字。 为您希望拥有唯一生成编号的每个项目执行步骤 2-4。 利润!
【讨论】:
到目前为止,最简单的方法是使用暴露的变量:
%dep.<build configuration id here>.build.number%
您可以使用该变量使用依赖项中的任何参数。如果您开始在旁边带有方框的字段中输入%,您可以选择一个变量,它将在那里弹出构建配置ID。
【讨论】: