TeamCity中功能分支的自动合并无效

时间:2016-02-10 12:21:01

标签: git teamcity

我们正在使用TeamCity Professional 9.1.1和Git / Stash进行版本控制,我正在努力让自动分支合并工作。

我们的场景是开发人员从名为feature / feature-feature的master创建功能分支。一旦该功能准备好进行测试,它们就会将分支合并到一个集成分支中。我们希望在团队城市中实现自动化。

我已经设法通过将此功能添加到我们的分支规范中来自动构建功能和bugfix分支:在主分支的VCS根目录中

+:refs/heads/feature/*
+:refs/heads/bugfix/*

但我很难让功能分支自动合并到集成分支中。我添加了an automatic merge build feature,我尝试了各种组合'分支中的监视构建'和'合并分支:'对于'分支中的监视构建'我目前有

+:feature*
+:bugfix*

和'合并到分支:'

integration

我也试过

+:feature/*
+:bugfix/*

+:refs/heads/feature/*
+:refs/heads/bugfix/*

构建成功但分支没有合并到集成中,日志中没有消息。

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:1)

我知道这是一篇旧帖子,但我刚刚遇到了自动合并未被触发的情况(我使用的是TC 2017)。请注意,因为我对OP回购并不太了解,所以我可能有点想解决这个问题,但也许我可以帮助未来的访问者。通常,有三件事需要配置,VCS,自动合并本身和构建触发器。

  1. VCS设置中,您必须包含要监控以进行合并的分支。这些将是默认分支的补充。
  2. 自动合并构建功能中,指定要合并的源分支和要合并的单个分支。
  3. 触发器是我失败的地方。在我的配置中,我监视VCS中默认分支的更改,这意味着在此特定构建配置中,从未构建要合并的分支(故意)。但根据Team City文档(我添加了粗体部分):
  4.   

    自动合并构建功能跟踪与配置的过滤器匹配的分支中的构建,并在构建满足配置的条件(例如构建成功)时将它们合并到指定的目标分支中。 合并在构建完成后发生。

    合并是在源分支上的构建完成之后发生的。因此,简而言之,我的问题是我的触发器被配置为仅构建默认分支,因此功能分支永远不会构建,因此永远不会合并。

    P.S。如果你问我,我改变行为,以便无论触发它的分支如何都会发生合并,但我知道很难控制功能分支有bug并且不编译的情况,TC可以可能在合并之前运行构建,之后运行另一个构建,但这可能会对运行者产生很大的性能影响。

    P.S.S。另一个选择是配置它(这是我打算进一步下线)。因为我有功能分支的单独构建,我将在那里配置自动合并,以推送刚刚构建到主分支中的更改。这个应该自动触发主分支上的构建,完成循环。

答案 1 :(得分:-1)

根据您提供的TeamCity documentation链接:

合并到分支: 源将合并到的目标分支的逻辑名称。这里支持参数引用。分支必须出现在存储库中,并包含在分支规范中。

您是否已将+:refs/heads/integration添加到BranchSpecification中?