TeamCity在多个构建配置之间共享构建号

时间:2013-07-17 20:49:37

标签: teamcity

我正在寻找一种在多个构建配置之间共享构建号的方法。目标是拥有某种类型的全局计数器,所有构建配置都会增加它并在其自己的构建号中使用它。

7 个答案:

答案 0 :(得分:48)

如果构建配置A之一对构建配置B具有快照或工件依赖性,那么您可以借助依赖项参数从A中的B获取构建号:

%dep.<B id>.build.number%

其中&lt; B id&gt;是构建配置B的id(请参阅URL中的buildTypeId参数)。

答案 1 :(得分:26)

此解决方案适用于我:

  1. 创建构建配置。让我们说“GenerateBuildNumber”,不要附加模板。不要指定任何构建步骤。单击“保存”。
  2. 编辑项目的配置。转到“构建配置设置 - &gt;依赖关系”。单击“添加新快照依赖”。
  3. 在“依赖”部分中选择以前创建的“GenerateBuildNumber”。 取消选中选项“如果有合适的版本,请不要运行新版本”。单击“保存”。
  4. 转到“常规设置”,清除“内部版本号格式:”,单击左侧有3行的按钮。选择“%dep.YouProjName_GenerateBuildNumber.env.BUILD_NUMBER%”。单击“保存”。
  5. 运行项目构建。首先,它应该启动“GenerateBuildNumber”项目,然后启动生成数字的项目。 对于要使用唯一生成编号的每个项目执行步骤2-4。 利润!

答案 2 :(得分:11)

我相信AutoIncrementer插件应该可以解决问题。它允许您在配置之间共享构建号。 http://confluence.jetbrains.com/display/TW/Autoincrementer

答案 3 :(得分:4)

您可以按照以下步骤使一个Team City项目使用另一个项目的内部版本号:

  1. 打开要导入内部版本号的配置的TeamCity项目配置属性。

  2. 转到“依赖关系”部分。

  3. 添加“工件依赖关系”,并选择要从内部项目中获取内部版本号的项目配置。

  4. 在“从中获取工件”字段中选择“使用指定的内部版本号构建”

  5. 在“内部版本号”输入框旁边有一个按钮,您可以单击该按钮以选择获取内部版本号的位置。在此列表中,您应该看到类似“dep.bt2.build.number”的选项(您的配置可能不是2)。

答案 4 :(得分:3)

AutoIncrementer很好,但是现在有一个新的插件试图做一些用户说他们无法用AutoIncrementer做的事情:

http://java.nicholaswilliams.net/TeamCityPlugins/introduction#SharedBuildNumber

当您将其添加到TeamCity时,它有一个UI,并且还可以处理您可能想要使用的格式的日期。

答案 5 :(得分:0)

到目前为止,最简单的方法是使用公开的变量: %dep.<build configuration id here>.build.number% 您可以使用该变量使用依赖项中的任何参数。如果您开始在旁边带有方框的字段中输入%,则可以选择一个变量,它将在其中弹出带有构建配置ID的

答案 6 :(得分:0)

如何设置参数
第一步:使用IDE选择你要使用的那个
enter image description here 第 2 步:%dep.[B id].build.number% 来自另一个项目名称
enter image description here

如何获取参数
enter image description here

echo %CAPR_number% <-- Parameter Name