【问题标题】:TeamCity triggers too many builds for a new branchTeamCity 为新分支触发了太多构建
【发布时间】:2014-11-18 12:15:39
【问题描述】:

当我从分支 A 创建一个新分支 B 并执行一次提交时,TeamCity 会在 B 上触发多个构建,尽管我希望只有一个构建。
我将“每次签入时触发构建”设置为 true,但仍然应该只有一个构建,因为只有一个新提交。 TeamCity 似乎为当月的每个提交触发了构建。 分支A 的所有构建都已完成,并且使用相同的构建配置来构建分支AB。 我可以将 TeamCity 配置为仅为尚未构建的提交创建构建(无论在哪个分支上)?

【问题讨论】:

  • 我以前也遇到过这种情况,但我不确定是什么原因。在这种情况下,我取消了所有未完成的构建,然后重新运行构建,这似乎总是在一个构建中完全批处理更改。
  • 当然可以,但这显然不是一个可持续的解决方案。您还记得您是否更改了任何内容,或者它只是消失了,还是您重新安装了整个系统?

标签: git build continuous-integration teamcity feature-branch


【解决方案1】:

您似乎遇到了这个issue。 作为当前的解决方法,请尝试设置

teamcity.vcsTrigger.runBuildOnSameRevisionInEveryBranch=false

您可以将其设置为构建配置中的参数 - 以影响特定的构建配置,或在internal.properties file 中设置以影响所有构建配置。

【讨论】:

  • 谢谢,这似乎可以完成这项工作,尽管在创建没有更改的新分支时它仍然会触发构建。但我想一个版本不会受到伤害。
  • 在哪里设置?确切地?为什么不能有某种接口带有这些布尔值的复选框。
  • 您可以将其设置为构建配置中的参数 - 以影响特定的构建配置,或在internal.properties 中设置以影响所有构建配置。
【解决方案2】:

我想您已经为该构建配置激活了 VCS 构建触发器。因此,转到该构建配置设置页面 > 触发器 > 并查找 VCS 触发器。点击编辑链接,会出现一个模态框,里面会有你要找的选项:“Trigger a build on each check in”:https://confluence.jetbrains.com/display/TCD8/Configuring+VCS+Triggers#ConfiguringVCSTriggers-PercheckinTriggering

【讨论】:

  • 谢谢。虽然我希望它在每次签到时触发。但是想象一下,我在一个由 TeamCity 持续构建的功能分支上工作。当我将它合并回主分支时,我不希望每次提交都触发构建,因为它们已经在另一个分支上触发了。
  • 所以runBuildOnSameRevisionInEveryBranch 似乎正是我想要的。