在TeamCity 10

时间:2016-12-05 18:12:11

标签: teamcity teamcity-10

我目前正在实施(我不知道实现是否是适当的词,但无论如何)TeamCity中的语义版本控制。我有项目级系统参数,我在其中存储版本号部分:system.majorsystem.minorsystem.patch。我有两个构建配置:

  • 首先,我们称之为 beta ,正在使用主要次要补丁并将其构建计数器值附加到版本(即1.0.0.X,其中X是beta'构建计数)。
  • 其次,我们将其称为发布,使用主要次要(但不是修补程序) as-is并将其构建计数器值作为补丁号附加(即1.0.Y,其中Y是释放的构建计数)。

我们希望我们的版本增加如下:

  1. 运行 beta 版本:1.0.0。 1
  2. 另一个 beta 版本:1.0.0。 2
  3. 运行发布版本:1.0。 1 .0
  4. 另一个 beta 版本:1.0.1。 3
  5. 问题是,我们希望在 beta 构建中使用发布构建计数器作为补丁号,而无需任何人为干预。到目前为止,我已经阅读了有关使用汇编信息或外部VCS跟踪文件的人在上一个构建步骤中存储当前版本并在每个构建配置的第一个构建步骤中解析文件。这种方法虽然看起来是标准方式,但并不受项目经理的欢迎,所以我想避免使用汇编信息或其他VCS跟踪文件来存储版本信息。我尝试使用 release 配置中的powershell脚本构建步骤来设置参数 patch

    Write-Host "##teamcity[setParameter name='system.patch' value='%build.counter%']"
    

    然而,使用teamcity[setParameter...]似乎在正在运行的构建中生效,并且仅在连续的构建步骤中生效。我想要的是在一个构建(发布)中设置系统参数,然后在另一个构建配置(beta)中使用它们的值。

    有没有直截了当的方式我看不到?如果你有类似的经历,你能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我通过PowerShell在构建步骤中执行API调用来完成类似的操作。这对你有用吗?执行GET请求以查找当前版本构建计数器,然后使用PUT请求更新相应的参数。