2017-01-16 45 views
1

我是GitLab CI的新手,試圖設置一個創建合併請求時需要觸發的構建。目前該構建在MR被接受併合併到「開發」分支之後運行。這很好。但是我也期待在創建MR時運行構建。如何在MR上運行GitLab CI構建?

我的gitlab-ci.yml如下 - 我錯過了什麼嗎?

stages: 
    - test 

test_project: 
    stage: test 
    script: 
    - xcodebuild -scheme CodeRedTests -sdk iphonesimulator10.2 -workspace CodeRed.xcworkspace -configuration Debug clean build test -destination "platform=iOS Simulator,OS=10.2,name=iPhone 5s" | xcpretty -s 
    only: 
    - develop 
    tags: 
    - ios_10 
    - xcode_8 
    - osx_10-12 

回答

1

創建MR時運行測試自2015年以來一直是hot topic甚至更​​長。 準確地說,需要在某些管道中對合並代碼(從您的分支開發)運行測試。如果一切都好,那麼MR就會得到綠燈。

現在不可用尚未。一個doc說:

在舊的工作流程的持續集成(CI)服務器通常運行在只有主分支 測試。開發人員必須確保他們的代碼 沒有破壞主分支。當使用GitLab流程開發者 從這個主分支創建他們的分支,所以它是必不可少的,它是 綠色。因此,每個合併請求必須在接受 之前進行測試。像Travis和GitLab CI這樣的CI軟件在合併請求本身中顯示了構建結果 以使其變得簡單。一個缺點是 他們正在測試功能分支本身,而不是合併的 結果。可以做些什麼來改善這一點,就是測試合併結果 本身。問題是合併結果每次都會變化 東西被合併到主內。重新測試每個承諾 的計算成本很高,意味着您更頻繁地等待 以獲得測試結果。 如果沒有合併衝突,並且 分行短暫存在,則風險是可以接受的。如果合併 衝突,則將主分支合併到功能分支中,CI服務器將重新運行測試。如果您長期居住的功能 分支持續超過幾天,您應該使您的 問題更小。

因此,您可以嘗試合併開發到您的功能分支,以確保一切正常,但您必須刪除only: develop限制。

+0

謝謝Piotr爲你準備。根據GitLab文檔,它聽起來能夠實現...在合併之前進行測試(請檢查以下鏈接,是否有任何想法?) https://docs.gitlab.com/ce/workflow/gitlab_flow.html https:// docs。 gitlab.com/ce/workflow/ci_mr.png –

+0

啊我明白你的意思了,我們正在看同樣的文件!所以現在還不可能!!!任何想法何時可用? :) –

+0

@AvishekDas不知道,現在它有'功能提議'標籤,它位於待辦事項中。我們必須觀察。 –