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

49

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

7个回答

56

如果构建配置A中有对构建配置B的快照或者构件依赖关系,那么你可以通过依赖参数在A中获取来自B的构建编号:

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

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


3
谢谢。如何获取配置B最后一次成功构建的构建编号? - adnako

46

这个解决方案适用于我:

  1. 创建生成构建编号的构建配置,例如"GenerateBuildNumber",不附加模板,不指定任何构建步骤。单击保存。
  2. 编辑项目的配置。进入"Build Configuration Settings->Dependencies"。点击"添加新的快照依赖项"。
  3. 在"依赖项"部分中选择先前创建的"GenerateBuildNumber",取消选中"如果有合适的构建,则不运行新构建"选项。单击保存。
  4. 进入"常规设置",清除"构建号格式:",点击左侧带有3条线的按钮,在"%dep.YouProjName_GenerateBuildNumber.env.BUILD_NUMBER%"中选择。单击保存。

运行你的项目构建。首先它应该启动"GenerateBuildNumber"项目,然后使用生成的编号启动你的项目。 对于每个需要唯一生成号码的项目,请执行步骤2-4。 收益!


虽然使用专用的构建配置有点麻烦,但这个解决方案确实非常有效。如果不必要,我更喜欢不依赖插件。 - Eric Sondergard
非常感谢!在TeamCity 2017.2.3上运行得非常好! - EM0
1
仍在使用2018.2.2版本 - 这是一个非常好的、简单的解决方案! - Matt Kocaj

14

我们使用过它的版本号为v7.0,但尚未在v8.0中使用过。 - Dean Ward
1
我已经成功地在TeamCity 8.0.2中使用它。只需下载软件包的v7版本。 - Jeremy Smith
我无法在使用软件包的第8版时,在8.1.2上使其工作。但是,我成功地在Tc 8.1.2上使用从JetBrains构建服务器下载的v31版本。 - Dav Evans
1
我已经成功地在 TeamCity 9.1.3(构建 37176)中使用了此功能,并使用 8.x+ 构建。它有点繁琐,因为您需要手动编辑 autoincrementer.configuration 文件,但似乎效果不错。 - PabloInNZ
适用于TeamCity 2019.1.5。 - tom.maruska

5
您可以按照以下步骤使一个Team City项目使用另一个项目的构建编号:
  1. 打开您想要导入构建编号的配置的TeamCity项目配置属性。

  2. 进入“依赖项”部分。

  3. 添加一个“构件依赖项”,并选择您想要从中获取构建编号的项目配置作为依赖项目。

  4. 在“获取构件”字段中选择“使用指定构建编号的构建”。

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


有什么办法可以获取最新构建的分支名称吗? - WeSam Abdallah
这对我有用,使用“获取工件”:“最后成功构建”。 - giraffe.guru

3

1
这个链接无法使用。http://java.nicholaswilliams.net/TeamCityPlugins/introduction#SharedBuildNumber - koerbcm

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

这绝对是实现这一目标最简单、最容易的方法。 - Amit G

0

如何设置参数
步骤1:使用IDE选择您想要使用的参数
输入图像描述 步骤2:从另一个项目名称中获取%dep.[B id].build.number%
输入图像描述

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

echo %CAPR_number% <-- Parameter Name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接