47

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

4

7 回答 7

55

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

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

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

于 2013-07-18T20:41:00.830 回答
42

这个解决方案对我有用:

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

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

于 2017-03-23T20:56:48.850 回答
14

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

于 2013-07-17T20:52:09.643 回答
5

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

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

  2. 转到“依赖项”部分。

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

  4. 在“Get artifacts from”字段中选择“Build with specified build number”

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

于 2016-09-20T23:09:31.733 回答
3

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

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

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

于 2016-07-04T14:51:32.033 回答
1

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

于 2020-09-29T20:42:50.227 回答
0

如何设置参数
Step 1: 使用 IDE 选择你要使用的
在此处输入图像描述 Step 2: %dep.[B id].build.number% from another project name
在此处输入图像描述

如何获取参数
在此处输入图像描述

echo %CAPR_number% <-- Parameter Name
于 2021-02-18T06:32:15.753 回答