我正在使用GitLab 8.3.2和TeamCity 9.1.6。我已经设置了JetBrains TeamCity CI服务,当更改被推送到GitLab时,它正在触发TeamCity中的构建。
我希望在创建合并请求时触发构建(我的理解是这个构建可以保证点击合并按钮不会破坏事物)。
我将TeamCity中的分支规范设置为:
+:refs/heads/*
+:refs/(merge-requests/*)
我可以在TeamCity中看到合并请求,但它们实际上并没有构建。
GitLab中的合并请求说'CI build for xxxx'。视图详细信息链接不包含内部版本号。我怀疑这是因为它搜索TeamCity找到匹配的构建并且找不到它,因为它没有在第一位触发。
我没有在TeamCity中配置任何构建触发器。 (我最初有一个VCS触发器,但是一旦我意识到GitLab正在为我触发构建,我就将其关闭了。)
如何进行设置以便合并请求触发TeamCity中的构建并让GitLab在合并请求中显示构建结果。
答案 0 :(得分:4)
您应该决定如何触发构建:由TeamCity调查GitLab的更新或GitLab。
对于TeamCity方式,您需要在构建配置中添加VCS触发器。这将使TeamCity触发器构建在“分支规范”中配置的分支上。您还可以限制分支以在触发器设置中触发构建。您需要disable GitLab触发TeamCity中的构建。
对于在所有分支中触发构建的GitLab方法,您可能需要将分支规范设置为
+:(refs/heads/*)
+:(refs/merge-requests/*)
确保分支已完整命名(我猜这里)。
答案 1 :(得分:0)
我设法解决了与你类似的问题。实际上,我遵循GitLab提供的指示
Teamcity中的构建配置必须使用构建格式编号%build.vcs.number%,您还需要配置对所有分支的监视,以便构建合并请求,该设置位于vsc root高级设置中。
创建合并请求后,它会在teamcity中检查相同的build.vcs.number,并在构建完成后,状态将在gitlab的合并请求中更新