从 GitLab 7.6 或更高版本开始,有一个新选项可以直接从 GitLab 项目使用 TeamCity。在设置中有这样的消息:
The build configuration in Teamcity must use the build format number %build.vcs.number% you will also want to configure monitoring of all branches so merge requests build, that setting is in the vsc root advanced settings.
我不确定这是如何工作的。假设我有一个存储库 Foo。
我已经在 TeamCity 上设置了一个构建,以使用分支规范来监听 Foo:+:refs/pull/*/merge
然后我在 gitlab 中将 Foo fork 为 FooFork,进行更改,然后请求合并 FooFork -> Foo。
但是测试这个合并没有发生任何事情,这正是我期望 GitLab 所做的。如果我接受合并,则构建服务器会(立即)开始执行操作并构建两次(master
和 /ref/master
)。
我还设置了构建配置以准确使用:%build.vcs.number% 作为规定的构建号,但 gitlab 似乎没有给我有关构建结果的任何信息。
所以我真的有点困惑,不知道这个 GitLab -> TeamCity 集成到底应该做什么,以及我是否做错了。
我目前正在运行 GitLab 7.9 和 TeamCity 8.1.4
更新:
版本 8 之前似乎不支持此用例 - https://github.com/gitlabhq/gitlabhq/issues/7240
最佳答案
我正在运行 GitLab 8.0.2 和 TeamCity 9.1.1,并且能够在分支和合并请求上运行 CI 构建。
我通过设置 VCS 触发器和 branch specification 来触发特定分支的 CI 构建。 +:refs/heads/(xyz*)
其中 xyz 是我们的票证系统前缀的字符串,因为所有事件分支都需要以我们的问题跟踪器中的条目命名。
我通过分支规范触发合并请求的构建+:refs/(merge-requests/*)
一切都按预期进行,让我们自动了解所有功能/错误分支和合并请求的状态。
感谢 Rob 的评论,链接到合并请求规范中的 GitLab 8 发行说明条目。
关于teamcity - 将 GitLab 与 TeamCity 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282548/