TeamCity:通过单击和公共内部版本号

时间:2015-10-25 19:16:58

标签: continuous-integration teamcity build-process teamcity-9.0

我是TeamCity的新手(但不是CI系统),我一直在努力弄清楚如何使用这个配置:

我安装了最新的TeamCity Professional版本9.1.3(3个构建代理,20个配置)

这是我的TeamCity项目布局:

项目A
  - 构建产品X(WIN)
  - 建立产品Y(WIN)
  - 构建产品Z(Linux)

我有3个代理来相应地构建上述构建配置 - 在Windows上有2个,在Linux上有1个代理

WIN产品使用批处理,PowerShell和msbuild脚本的混合构建 Linux产品使用shell脚本

构建

手动启动这三个版本(在项目A下),效果很好。但是,这是不可行的,因为我们有许多功能分支,并且它们都具有类似的构建配置 - 每次构建+设置3次点击每个构建配置的构建参数都很昂贵。

所以,这是我的问题:

  1. 有没有办法通过单击点击触发整个项目?这样做,应该并行运行这些构建
  2. 如果可能为1,那么如何在这3种构建配置中设置相同的构建号(构建参数)?
  3. 是否可以设置一个VCS触发器,该触发器将轮询构建这些内容的任何repos上的更改并触发整个项目(可提供1)
  4. 请注意我尝试配置 snapshot artifact 依赖项以使其工作,但创建依赖项只会暂停其他构建配置 wait 直到依赖项目完成但对我们来说这是不可行的 - 它们需要并行运行。 (我们的构建需要大约45分钟才能完成) - 是的,我们有一个巨大的产品要打包。

    对于正确方向的任何指示,我将不胜感激

    由于

1 个答案:

答案 0 :(得分:1)

是的,一键式触发并行运行是可以实现的:创建第四个(或第0个)构建配置,什么都不做(没有构建步骤)。我们将此配置称为“零”。你的三个构建配置将在Zero上有一个“完成构建”触发器(Zero完成时触发)以及对Zero的快照依赖。

最佳位:您只需要在Zero中定义公共/共享参数,其他三个配置可以重用这些参数。例如,如果您在Zero中定义%foo%,则其他三个都可以使用%dep.MyProject_Zero.foo%。这也意味着您可以获得Zero的内部版本号:%dep.MyProject_Zero.build.number%。在您的三个构建配置中,切换到“常规设置”并将“构建号码格式”设置为上述。

对于VCS触发,只需将Zero设置为跨越所有三个VCS区域。你建议他们每个人都有一个不同的回购...我没有经验,但假设Zero可以跨越所有三个回购。

最后,如果您使用功能分支,并且您的VCS是git,mercurial或Perforce Streams,请确保您已阅读TeamCity feature branches support;它可以为你节省很多时间!