2

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

  • 首先,我们称它为beta,按原样使用majorminorpatch并将其构建计数器值附加到版本(即 1.0.0.X ,其中 X 是 beta 的构建计数)。
  • 其次,我们称之为release,按原样使用主要次要(但不是补丁)并将其构建计数器值附加为补丁编号(即 1.0.Y ,其中 Y 是发布的构建计数)。

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

  1. 运行测试版:1.0.0。1
  2. 另一个测试版:1.0.0。2
  3. 运行发布版本:1.0。1 .0
  4. 另一个beta版本:1.0.1。3

问题是,我们希望在beta版本中也使用发布版本的计数器作为补丁编号,而无需任何人工干预。到目前为止,我已经读到有人使用程序集信息或外部 VCS 跟踪文件在最后一个构建步骤中存储当前版本,并在每个构建配置的第一个构建步骤中解析文件。这种方法虽然看起来是标准方法,但不受项目经理的欢迎,因此我想避免使用程序集信息或其他 VCS 跟踪文件来存储版本信息。我尝试在发布配置中使用 powershell 脚本构建步骤来设置参数补丁,使用:

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

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

有没有我看不到的直接方法?如果你有类似的经历,你能给我指出正确的方向吗?

4

1 回答 1

0

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

于 2016-12-06T15:49:42.433 回答