我是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次点击每个构建配置的构建参数都很昂贵。
所以,这是我的问题:
请注意我尝试配置 snapshot 和 artifact 依赖项以使其工作,但创建依赖项只会暂停其他构建配置 wait 直到依赖项目完成但对我们来说这是不可行的 - 它们需要并行运行。 (我们的构建需要大约45分钟才能完成) - 是的,我们有一个巨大的产品要打包。
对于正确方向的任何指示,我将不胜感激
由于
答案 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;它可以为你节省很多时间!