Git 在CI服务器中生成合并请求

Git 在CI服务器中生成合并请求,git,teamcity,gitlab,Git,Teamcity,Gitlab,我们正在使用GitLab管理我们的回购协议。我们正在尝试遵循GitFlow流程,作为其中的一部分,我们希望能够在TeamCity中自动构建和执行针对任何合并请求的测试 从我所看到的,这在GitLab CI中是可能的,但对于我们来说,转移到这一点是不现实的 我看过一些关于在GitHUB上使用分支规范(如+refs/pull/*/merge)实现这一点的教程——GitLAB是否创建了类似的分支规范 我们正在使用GitLab的4.2版,但如果需要,可以升级此功能和TeamCity的8版我有GitLab

我们正在使用GitLab管理我们的回购协议。我们正在尝试遵循GitFlow流程,作为其中的一部分,我们希望能够在TeamCity中自动构建和执行针对任何合并请求的测试

从我所看到的,这在GitLab CI中是可能的,但对于我们来说,转移到这一点是不现实的

我看过一些关于在GitHUB上使用分支规范(如+refs/pull/*/merge)实现这一点的教程——GitLAB是否创建了类似的分支规范


我们正在使用GitLab的4.2版,但如果需要,可以升级此功能和TeamCity的8版

我有GitLab 6.3和TeamCity 8,我也需要构建功能分支。我们有以下工作流(它基于git流,但根据我们的发布周期略有变化)

因此,我们有
development
分支,其中一个分支使用一个特定的名称
dev/featurename在这里推动功能分支

接下来,在GitLab中创建一个合并请求,从这里的
dev/featurename
development

TeamCity配置为使用以下refspec为每个分支自动运行构建:
+:refs/heads/dev/(*)
,因此我们可以在此处看到分支
功能名称的构建自动启动

接下来,我有一个自定义脚本,它嵌入到GitLab的合并请求页面中。它执行以下操作

  • 通过查看MR页面来检测源分支和目标分支
  • 使用TeamCity REST API枚举属于目标分支的构建(在TeamCity 8中,我们可以分配自定义构建配置ID进行构建,因此我们使用一些语义命名,如
    devUnit
    devIntegration
    devWhatever
    ,等等)
  • 创建一个表,其中包含每个相关生成配置的源分支和目标分支的生成状态映像
  • 现在看起来是这样的:


    现在,这种方法有一些缺点,比如,如果一个分支使用另一个推送更新,我无法从GitLab页面判断是否已经生成了新提交,或者我看到了旧的生成状态,所以我需要单击一个生成链接并签入TeamCity,我认为这将非常有用。Jenkins可以使用合并请求生成器,但我找不到TeamCity()的等效生成器。但是,通过查看这个插件的源代码可以看出,它比只看+refs/pull/*/merge这样的东西要复杂得多。我们创建名为“hf/”的热修复程序。Teamcity正在接管分支机构,但不是在进行自动构建。构建触发器中是否有任何特定的设置?除了标准vcs构建触发器外,我们不做任何特殊的设置。它们的配置没有任何过滤器和异常-如果检测到更改,请立即启动。嗨@Olegas,我在哪里可以获得有关如何实现这一点的更多信息?嗨@CarlosCastellanos!给我写封信(电子邮件地址见我的SO档案),我会在那里回答你的问题。Hi@Olegas,给你发了一封电子邮件,你能尽快给我建议吗??,我的主要问题是将构建结果集成到合并请求页面,如果你时间不够,你可以关注这个问题