2017-03-07 59 views
1

假設我們在github中使用Jenkins,Teamcity或其他方法構建(CI)每個pull請求,並且在構建成功時合併PR。每個公關必須建立在最新的分支上。想知道人們如何能夠做到這一點?同時構建多個github pull請求,但合併最新分支上的每個PRO

PRs Start Time Jenkins Build  Build Finished 

PR1 (10:00) ---> Building(30 mins) -->10:30 ----> Merged in Develop 
PR2 (10:05) ---> Building(30 mins) -->10:35 ----> Merged in Develop 
PR3 (10:10) ---> Building(30 mins) -->10:40 ----> Merged in Develop 

我有這種方法的一個問題。在PR1合併到開發分支(在10:30)之後,PR2和PR3不再是最新的分支,它們處於開發分支的舊狀態(在PR1合併之前)。

在Github中有一個選項可以確保受保護的分支在合併之前是最新的。 「在合併前要求分支機構保持最新狀態」。如果我們選擇這個選項,PR2和PR3不能在開發中合併,並且我們得到PR的「更新分支」按鈕,這將確保PR從開發分支重新分配。

現在PR2和P3在開發分支上重新設計,但未在最新代碼中驗證,所以我們再次構建它們。哪些花費更多時間來構建每個公關。它像2到3倍的構建。

你們在組織中如何實現這一目標?

回答

0

事實:

  • 如果您的驗證過程需要30分鐘,
  • ,如果你需要驗證:
    1. 單獨
    2. PR2PR1上驗證PR1
    3. 的頂部頂部o上的PR3 ˚F驗證PR1 + PR2

則:

  • 你正在尋找一個最低的1小時30分鐘,整合3個永久居民

如何改變這種:

  • 優化喲我們建立作業
  • 如果您可以通過只運行一部分任務(例如:運行單元測試,但不需要構建靜態資產...)來驗證PR,則將您的CI作業分成兩個作業:一個「驗證」工作和一個「構建」工作
  • 更改您的管線:例如,您可以讓您的CI自動驗證新PR,但需要一些手動步驟將PR合併到主數據中,並手動觸發結果上的構建作業
+0

謝謝@LeGEC。我們正試圖避免此過程中的任何手動步驟來提高開發人員的生產力。目前,我們的開發人員提交公關並假定他們完成了他們的工作。我們的自動化完成所有的構建/驗證等,並將其合併到master中。如果自動化在任何情況下都失敗了,它應該將反饋發送給Dev來看看。 – Sridhar

相關問題