将GitLab与TeamCity集成

时间:2015-03-26 15:30:11

标签: teamcity gitlab

从GitLab 7.6或其附近开始,有一个新选项可以直接从GitLab项目中使用TeamCity。在设置中有以下消息:

  

Teamcity中的构建配置必须使用构建格式编号   %build.vcs.number%您还需要配置所有的监控   分支如此合并请求构建,该设置在vsc根目录中   高级设置。

我不确定这是如何运作的。可以说我有一个存储库Foo。

我已经在TeamCity上设置了一个构建,以使用分支规范来监听Foo:+:refs/pull/*/merge

然后我在gitlab中将Foo分叉为FooFork,进行更改,然后请求合并FooFork - >富。

但没有任何事情可以测试这个合并,这正是我期待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

2 个答案:

答案 0 :(得分:6)

我正在运行GitLab 8.0.2和TeamCity 9.1.1,并且能够在分支和合并请求上运行CI构建。

我通过设置VCS触发器和branch specification +:refs/heads/(xyz*)来触发特定分支的CI构建,其中xyz是我们的票证系统前缀的字符串,因为所有活动分支都需要在条目之后命名我们的问题跟踪器。

我通过分支规范+:refs/(merge-requests/*)

触发合并请求的构建

一切都按预期工作,让我们知道所有功能/错误分支的状态并自动合并请求。

感谢Rob的评论链接到合并请求规范中的GitLab 8发行说明条目。

答案 1 :(得分:2)

这里的问题相同。可能还有另一种方式,我现在正在评估。由于没有直接的方法从目标MR获得合并状态,您必须自己构建它:

IMO有以下待办事项 1.)发起一个简单的回购$ git init
2.)添加目标回购$ git remote add origin git@your-repo:<origin.group>/<origin.repo>.git
3.)添加远程/功能/合并$ git remote add target git@your-repo:<feature.group>/<feature.repo>.git
4.)签出您的功能分支$ git checkout -b <feature.branch> feature/<feature.branch>
5.)签出原始分支$ git checkout -b <origin.branch> origin/<origin.branch>
6.)将Rebase功能放入原始分支$ git rebase <feature.branch>

如此处[1]所述,GitLab-CE可以在创建合并请求时触发事件,

所以你要做的就是构建一些 meta ,它可以评估WebHooks。

[1] http://doc.gitlab.com/ce/web_hooks/web_hooks.html#merge-request-events