【问题标题】:TeamCity share build number between multiple build configurationsTeamCity 在多个构建配置之间共享内部版本号
【发布时间】:2013-07-16 14:31:47
【问题描述】:

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

【问题讨论】:

    标签: teamcity


    【解决方案1】:

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

    【讨论】:

    • 我们在 v7.0 之前使用它,还没有在 v8.0 中使用它。
    • 我在 TeamCity 8.0.2 中成功使用了它。只需下载包的 v7。
    • 我无法让它在 8.1.2 上使用版本 8 的包。我确实设法让 v31(从 jetbrains 构建服务器下载)在 Tc 8.1.2 上运行。
    • 我已经成功地将它与 TeamCity 9.1.3(构建 37176)一起使用,使用 8.x+ 构建。这有点繁琐,因为您需要手动编辑 autoincrementer.configuration 文件,但似乎工作正常。
    • 与 TeamCity 2019.1.5 配合使用
    【解决方案2】:

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

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

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

    【讨论】:

    • 谢谢,如何获得配置 B 的最后一次成功构建的构建号?
    【解决方案3】:

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

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

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

    【讨论】:

    【解决方案4】:

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

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

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

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

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

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

    【讨论】:

    • 知道如何获取最新构建的分支名称吗?
    • 这对我来说适用于“Get artifacts from”:“Last successful build”。
    【解决方案5】:

    这个解决方案对我有用:

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

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

    【讨论】:

    • 虽然不得不使用专用的构建配置有点尴尬,但这个解决方案确实工作得很好。如果没有必要,我宁愿不承担插件依赖项。
    • 在 TeamCity 2017.2.3 上运行良好,非常感谢!
    • 仍在开发 2018.2.2 - 这是一个伟大而简单的解决方案!
    【解决方案6】:

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

    【讨论】:

    • 这是迄今为止实现这一目标的最简单和最容易的方法
    【解决方案7】:

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

    如何获取参数

    echo %CAPR_number% <-- Parameter Name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 2012-06-27
      • 2015-11-15
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多