21

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

那么,无论有多少不同的人进行了多少次签入,有谁知道如何在 VCS 的更改上触发单个构建?

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

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

我想我可以使用自定义构建触发器来做到这一点,但我宁愿不走这条路。

在此先感谢您的帮助。

4

2 回答 2

30

尽管它违反直觉,但Trigger a build on each check-in只要您启用安静期足够长的时间以包含所有签入,取消选中该复选框即可解决此问题。

本质上Trigger a build on each check-in实际上意味着“在每个构建中仅包含 1 个签入”。禁用该选项仍会导致构建由签入触发,但将包括在构建实际开始之前发生的所有签入(来自所有用户)。TeamCity 应该在他们的文档中真正澄清这一点或重命名该选项。

于 2014-10-17T17:25:33.583 回答
0

您需要为处理暂存合并的分支使用或覆盖安静期。

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

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

于 2013-12-06T05:03:24.170 回答