使用GitLab和TeamCity时,如何自动生成合并请求

使用GitLab和TeamCity时,如何自动生成合并请求,teamcity,gitlab,gitlab-8,Teamcity,Gitlab,Gitlab 8,我使用的是GitLab 8.3.2和TeamCity 9.1.6。我已经建立了JetBrains TeamCity CI服务,当更改推送到GitLab时,它会触发TeamCity中的构建 我希望它在创建合并请求时也触发一个构建(我的理解是,这个构建可以保证点击合并按钮不会破坏东西) 我已将TeamCity中的分支规范设置为: +:refs/heads/* +:refs/(merge-requests/*) 我可以在TeamCity中看到合并请求,但它们实际上没有生成 GitLab中的合并请求显

我使用的是GitLab 8.3.2和TeamCity 9.1.6。我已经建立了JetBrains TeamCity CI服务,当更改推送到GitLab时,它会触发TeamCity中的构建

我希望它在创建合并请求时也触发一个构建(我的理解是,这个构建可以保证点击合并按钮不会破坏东西)

我已将TeamCity中的分支规范设置为:

+:refs/heads/*
+:refs/(merge-requests/*)
我可以在TeamCity中看到合并请求,但它们实际上没有生成

GitLab中的合并请求显示“xxxx的CI构建挂起”。但是,“查看详细信息”链接不包含内部版本号。我怀疑这是因为它搜索TeamCity以查找匹配的构建,但没有找到它,因为它在第一位没有被触发

我没有在TeamCity中配置任何构建触发器。(我最初确实有一个VCS触发器,但当我意识到GitLab正在为我触发构建时,我关闭了它。)


如何设置合并请求以触发TeamCity中的生成,并让GitLab在合并请求中显示生成结果。

您应该决定如何触发生成:由TeamCity轮询GitLab以获取更新,还是由GitLab触发

对于TeamCity way,您需要在构建配置中添加VCS触发器。这将使TeamCity触发器构建在“分支规范”中配置的分支上。您还可以在触发器设置中限制要触发生成的分支。您需要在TeamCity中创建GitLab

对于GitLab,在所有分支中触发构建的方法可能需要将分支规范设置为

+:(refs/heads/*)
+:(refs/merge-requests/*)

为了确保分支的名称完整(我在这里猜)。

我设法解决了与您类似的问题。实际上,我遵循GitLab提供的说明

Teamcity中的生成配置必须使用生成格式编号%build.vcs.number%。您还需要配置对所有分支的监视,以便合并请求生成,该设置位于vsc根高级设置中

  • 在Teamcity方面,您需要将生成编号格式设置为%build.vcs.number%
  • 在Teamcity中配置分支规范以构建所有分支。我在我的案例中使用了+:refs/heads/(*)

  • 创建合并请求后,它将在teamcity中检查相同的build.vcs.number,当构建完成时,状态将在gitlab的合并请求中更新

    ,感谢您的输入。我很高兴GitLab触发了构建,而且它似乎做得很好。唯一的问题是它没有生成合并请求。您建议的分支规范与我在问题中发布的内容相匹配,只是我的问题中有*。你是建议我把它们去掉吗?答案中提到的分支规范有另一个括号位置(因此构建得到了一些其他的分支标签)-我的猜测是它在这种情况下很重要。