TeamCity拉取请求触发合并生成

TeamCity拉取请求触发合并生成,teamcity,Teamcity,我一直在尝试将我们的TC安装配置为使用以下场景: 我们有多个开发人员同时处理多个bug。我们的源代码存储在github中,我们使用pull请求。我希望Teamcity触发一个构建请求,如下所述:这似乎很容易做到。不幸的是,这样的配置看起来并没有合并拉取请求,而只是从存储库中拉取请求 让我举个例子: 开发人员A打开拉取请求nr 1(基于代码版本0010)。开发人员B也基于代码版本0010打开一个拉动请求nr 2。存储库中的当前代码版本为0015。我们的TeamCity服务器应该首先检查源代码的00

我一直在尝试将我们的TC安装配置为使用以下场景:

我们有多个开发人员同时处理多个bug。我们的源代码存储在github中,我们使用pull请求。我希望Teamcity触发一个构建请求,如下所述:这似乎很容易做到。不幸的是,这样的配置看起来并没有合并拉取请求,而只是从存储库中拉取请求

让我举个例子:

开发人员A打开拉取请求nr 1(基于代码版本0010)。开发人员B也基于代码版本0010打开一个拉动请求nr 2。存储库中的当前代码版本为0015。我们的TeamCity服务器应该首先检查源代码的0015版本,然后合并pull nr 1中的更改。如果合并成功,那么它应该尝试编译代码。对于拉力nr 2,也应进行类似操作

请注意,我需要TC根据分支中代码的当前版本进行合并,而不仅仅是从pull请求中提取版本

拉动请求nr 1已审核并接受,并合并到生产存储库中。这将触发重新生成拉请求nr 2,因为现在当前分支不是0015,而是0015,代码来自拉请求nr 1

我知道,对于许多pull请求,每次合并都会触发大量构建/重建。但这正是我需要TC的原因。持续集成过程的一部分应该是确保拉取请求的源代码与当前头合并而不发生任何冲突

在按照链接中的描述配置了TC服务器之后,它并没有真正与头部合并,而是简单地执行git pull和compile。这一点都没有帮助,因为这应该始终有效(前提是开发人员在提交更改之前在其机器上编译代码)


如果您能提供一些关于如何设置CI环境的提示或想法,我将不胜感激。我们可以根据最新的代码测试实际的合并,而不仅仅是简单的编译

我不相信teamcity能在开箱即用的情况下做到这一点。你也许可以通过制作自己的插件来实现它,但使用webhook可能会更好


看一看,它描述了一些类似的东西,并且有一个脚本,您可以根据需要重新调整其用途

TeamCity可以做到这一点。方向在您指向的链接中:()


简而言之,使用
+:refs/pull/*/merge
作为分支规范,让TeamCity使用合并的PR分支。使用
+:refs/pull/*/head
只构建您描述的未合并分支。

TeamCity 8.1引入了自动合并功能,以便在成功构建后将一个分支合并到另一个分支