TeamCity:通过单击和通用内部版本号触发项目触发器

TeamCity: trigger project trigger with a single click and common build number

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

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

这是我的 TeamCity 项目布局:

项目 A
-- 构建产品 X(获胜)
-- 构建产品 Y(获胜)
-- 构建产品 Z (Linux)

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

上有 1 个代理

WIN 产品混合使用批处理、powershell 和 msbuild 脚本
Linux 产品是使用 shell 脚本构建的

手动触发这 3 个构建(在项目 A 下)工作正常。然而,这是不可行的,因为我们有许多功能分支,并且所有功能分支都有 相似 构建配置 - 每个构建点击 3 次 + 在每个构建配置上设置构建参数是昂贵的。

所以,这是我的问题:

  1. 有没有一种方法可以通过单击触发整个项目的构建?这样做,应该 运行 这些并行构建
  2. 如果 1 是可能的,那么如何在这 3 个构建配置中设置相同的构建编号(构建参数)?
  3. 是否可以设置一个 VCS 触发器来轮询构建这些项目的任何存储库的更改并触发整个项目(前提是可能有 1 个)

请注意,我尝试配置 snapshotartifact 依赖项以使其工作,但创建依赖项只会暂停其他构建配置以等待 直到相关项目完成,但这对我们来说不可行 - 他们需要并行 运行。 (我们的构建大约需要 45 分钟才能完成)- 是的,我们有大量产品要打包。

如有任何正确方向的指点,我将不胜感激

谢谢

是的,一键触发并行运行是可以实现的:创建第 4 个(或第 0 个)不执行任何操作(没有构建步骤)的构建配置。我们称此配置为 "Zero"。你的三个构建配置每个都有一个 "Finished build" 零触发(零完成时触发)以及零快照依赖。

最好的一点:你只需要在 Zero 中定义 common/shared 参数,其他三个配置可以重用这些参数。比如你在Zero中定义了%foo%,那么其他三个都可以使用%dep.MyProject_Zero.foo%。这也意味着您可以获得 Zero 的内部版本号:%dep.MyProject_Zero.build.number%。在你的三个构建配置中,切换到 "General Settings" 并将你的 "Build number format" 设置为上面的

对于 VCS 触发,只需将零设置为跨越所有三个 VCS 区域。你是在暗示他们每个人都在不同的回购协议中......我没有这方面的经验但假设零可以跨越所有三个回购协议。

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