增加项目间的内部版本号,但跨配置统一

时间:2015-04-07 19:22:46

标签: teamcity versioning

标题可能有点模糊,但我要做的是在TeamCity中构建一个SOA应用程序。

基本上我有一个名为Continuous Build的项目。在该项目中有6个构建配置,每个服务一个。然后,我有另一个名为“Alpha”的项目,以及一个名为“Beta”的第三个项目。

现在我知道我可以使用Chained builds来共享内部版本号,但是我不能用这种方法做的是在“连续”,“Alpha”和“Beta”中建立数字的增量,同时在每个构建配置中保持统一的数字。

这是希望一个例子来解释我正在尝试做的事情。

- Continuous Build (project)
    - SVC 1 (build number 1.2.34)
    - SVC 2 (build number 1.2.34)
    - SVC 3 (build number 1.2.34)
    - SVC 4 (build number 1.2.34)
    - SVC 5 (build number 1.2.34)
    - SVC 6 (build number 1.2.34)
 - Alpha Build (project)
    - SVC 1 (build number 1.2.30)
    - SVC 2 (build number 1.2.30)
    - SVC 3 (build number 1.2.30)
    - SVC 4 (build number 1.2.30)
    - SVC 5 (build number 1.2.30)
    - SVC 6 (build number 1.2.30)
- Beta Build (project)
    - SVC 1 (build number 1.1.0)
    - SVC 2 (build number 1.1.0)
    - SVC 3 (build number 1.1.0)
    - SVC 4 (build number 1.1.0)
    - SVC 5 (build number 1.1.0)
    - SVC 6 (build number 1.1.0)

无论哪个项目选择下一个版本,下一个版本都将增加到1.2.35

我目前正在使用AutoIncrementer,但后来我最终得到以下内容(这并不理想)

- Continuous Build (project)
    - SVC 1 (build number 1.2.34)
    - SVC 2 (build number 1.2.35)
    - SVC 3 (build number 1.2.36)
    - SVC 4 (build number 1.2.37)
    - SVC 5 (build number 1.2.38)
    - SVC 6 (build number 1.2.39)

是否有任何工作可以实现我正在寻找的东西?

这是我当前配置的一个示例。

enter image description here

1 个答案:

答案 0 :(得分:1)

以下是我要尝试的内容:

  1. 创建另一个单独的构建配置,该配置仅提供您希望所有其他人使用的构建号。
  2. 使该内部版本号配置所有其他配置的快照依赖项。
  3. 在每个构建配置的常规设置中,将构建号设置为来自构建号配置的值。如果它被命名为BuildNumberGenerator,那么您将在内部版本号格式字段中使用%dep.BuildNumberGenerator.system.build.number%
  4. 编辑:刚刚在问题中看到了您的声明,您知道如何进行链式构建以共享内部版本号。上面的步骤2和3就是这样。

    另外,我没有看到使用此技术的AutoIncrementer插件的原因。

    我不知道它多次递增。需要尝试一下,看看会发生什么。您可以使用Finish Build Trigger启动所有其他构建,而不是让它们成为依赖项。因此,您将启动构建根(可用作构建号生成器),并且Finish Build Triggers将启动所有其他构建,这些构建将root作为快照依赖项。