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

问题描述 投票:37回答:5

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

teamcity
5个回答
50
投票

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

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

其中<B id>是构建配置B的id(请参阅URL中的buildTypeId参数)。


28
投票

这个解决方案对我有用:

  1. 创建构建配置。让我们说“GenerateBuildNumber”,不要附加模板。不要指定任何构建步骤。单击保存。
  2. 编辑项目的配置。转到“构建配置设置 - >依赖关系”。单击“添加新快照依赖”。
  3. 在“依赖”部分中选择以前创建的“GenerateBuildNumber”。取消选中“如果有合适的版本,请不要运行新版本”。单击保存。
  4. 转到“常规设置”,清除“内部版本号格式:”,单击左侧有3行的按钮。选择“%dep.YouProjName_GenerateBuildNumber.env.BUILD_NUMBER%”。单击保存。

运行项目构建。首先,它应该启动“GenerateBuildNumber”项目,然后启动生成数字的项目。对于要使用唯一生成编号的每个项目执行步骤2-4。利润!


11
投票

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


4
投票

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

  1. 打开要导入内部版本号的配置的TeamCity项目配置属性。
  2. 转到“依赖关系”部分。
  3. 添加“工件依赖关系”,并选择要从内部项目获取内部版本号的项目配置。
  4. 在“从中获取工件”字段中选择“使用指定的内部版本号构建”
  5. 在“Build number”输入框旁边有一个按钮,您可以单击该按钮来选择构建编号的位置。在此列表中,您应该看到类似“dep.bt2.build.number”的选项(对于您的配置,该数字可能不是2)。

3
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.