使用 GitLab 和 TeamCity 时如何自动构建合并请求

Pet*_*son 3 teamcity gitlab gitlab-8

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

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

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

+:refs/heads/*
+:refs/(merge-requests/*)
Run Code Online (Sandbox Code Playgroud)

我可以在 TeamCity 中看到合并请求,但它们实际上并未构建。

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

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

如何设置以便合并请求触发 TeamCity 中的构建并让 GitLab 在合并请求中显示构建结果。

Yae*_*gor 5

您应该决定您希望如何触发构建:通过 TeamCity 轮询 GitLab 以获取更新或通过 GitLab。

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

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

+:(refs/heads/*)
+:(refs/merge-requests/*)
Run Code Online (Sandbox Code Playgroud)

确保分支全名(我在这里猜测)。