如何为多个提交触发一个TeamCity构建,但是一个合并到一个分支中

时间:2013-12-04 16:36:18

标签: git continuous-integration teamcity teamcity-7.1

我正在尝试为VCS中的单个合并触发单个teamcity构建。我的CI的布局方式是我的一个分支暂存,我们将所有的更改合并到一起。然后,当我们想要部署到生产时,我们将staging合并到git中的master分支中。不幸的是,这触发了很多构建,可能是每个签入分段的一个。所以相反,我们希望这是一个单一的构建。因为它是单个合并到主分支。

那么,是否有人知道如何在VCS的变更中触发单一构建,无论有多少人在多少人中签到?

我在团队城市的构建触发器中选择的选项如下。

 Trigger a build on each check-in
 Include several check-ins in a build if they are from the same committer

我认为我可以使用自定义构建触发器来完成它,但我宁愿不去那条路。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:30)

尽管违反直觉,但只要您启用Quiet Period足够长时间以包含所有签到,取消选中Trigger a build on each check-in复选框就可以解决此问题。

基本上Trigger a build on each check-in实际上意味着"每个版本中只包括1个签到。"禁用该选项仍将导致由签入触发构建,但将包括在构建实际开始之前发生的所有签入(来自所有用户)。 TeamCity应该在他们的文档中明确说明这一点,或者重命名该选项。

答案 1 :(得分:0)

您需要使用或覆盖Quiet Period而不是处理登台合并的分支。

我猜测为了只为那个分支指定静默期,你可能需要一个单独的构建配置。拿你的主构建配置,在你管理它的任何屏幕上,你应该看到右侧的“提取模板”按钮。

然后,您可以使用该模板为暂存分支创建另一个构建配置,并覆盖触发器上的静默期。