2013-10-01 77 views
17

我們正在使用GitLab來管理我們的回購。我們正在嘗試遵循GitFlow流程,並且作爲其中的一部分,我們希望能夠在TeamCity中自動針對任何合併請求構建和執行測試。Gitlab - 在CI服務器中構建合併請求

從我所看到的情況來看,這在GitLab CI中是可行的,但是對於我們來說,這不是一個現實的選擇。

我看過有關使用分支規範(如+ refs/pull/*/merge)在GitHUB上實現此功能的教程 - GitLAB是否創建了類似的分支規範?

我們使用GitLab的4.2版本,但如果需要的TeamCity

+2

我認爲這將是非常有用的。 Jenkins可以使用合併請求生成器,但是我無法找到TeamCity的等效項(https://github.com/jenkinsci/gitlab-merge-request-builder-plugin)。儘管通過這個插件的源代碼來看,雖然它看起來比只看像+ refs/pull/*/merge之類的東西複雜得多。 –

回答

10

的這一特點和版本8我有GitLab 6.3和TeamCity的8,我需要建立功能分支也可以升級。我們有以下工作流程(它基於git-flow,但根據我們的發佈週期略有改變)。

因此,我們有development分支和一個推動功能分支與特定名稱dev/feature-name-here

接下來,在GitLab中創建一個合併請求從dev/feature-name-heredevelopment

TeamCity配置爲使用以下參考自動運行每個分支的構建:+:refs/heads/dev/(*)因此我們可以看到分支feature-name-here的構建自動啓動。

接下來,我有一個嵌入到GitLab合併請求頁面的自定義腳本。它執行以下操作。

  1. 通過看一個MR頁
  2. 隨着TeamCity的REST API列舉建立這是屬於一個目標分支(在TeamCity的8我們可以分配自定義生成配置ID來構建,所以我們使用檢測源和目標分支一些語義命名,如devUnit,devIntegration, devWhatever等)
  3. 創建一個表witch包含每個相關生成配置的源和目標分支的生成狀態圖像。

現在看起來是這樣的:

TC Build status at GitLab

現在,這種方法也有一些缺點一樣,如果一個更新與另一個推一個分支,我不能從GitLab頁面弄清楚是新的提交已建立或我是seeng老建立狀態,所以我需要點擊一個建立鏈接和檢查TeamCity

+0

我有這個設置來建立合併請求給主。我們創建名稱爲「hf/」的修復程序。 Teamcity正在挑選分支,但它不是自動構建的。生成觸發器中是否有特定設置? – Broncha

+0

除了標準的vcs構建觸發器之外,我們沒有做任何特殊的事情。它們的配置沒有任何過濾器和例外 - 只要檢測到更改就開始。 – Olegas

+0

嗨@Olegas,我可以從哪裏獲得更多關於如何實現這一目標的信息? –