2017-09-01 43 views
0

我們已經在我們的VSTS中的拉取請求上啓用了嚴格的生成到期,並且阻止PR完成,直到獲得成功構建。這工作得很好,並保持我們的主分支清潔。然而,我們經常面對的重大挫折的來源是當我們有多個排隊的PR,並且最終因隊列中前面的PR完成而終止。更新主分支時自動重新合併VSTS中的拉取請求

考慮場景:

  • 開發者A創建了一個新的PR(帶自動完成打開),其排隊一個新的版本
  • 開發人員B創建一個新的PR 發展商的公關構建完成之前哪個隊列另一個構建
  • 開發人員A的構建推移,PR自動完成和修改合併到主分支
  • 開發人員B的構建開始,完成並通過
  • 開發人員B的構建到期以來構建排隊
  • 開發人員B的主分支已經更新必須重新排隊的構建...

我們幾乎每天都面臨上述問題,並通常會在構建隊列中備份多個PR。我們的PR構建需要大約1小時才能完成,因爲它會對系統進行大量部署和測試。這會導致浪費很多時間構建服務器時間以及一些非常沮喪的開發人員。

有誰知道避免上述情況的方法。似乎只要主分支更新時自動重新合併PR的選項將完全解決此問題。

+0

我會將部署和部署後測試轉移到發佈定義的一部分。構建應該是快速的; 1小時對於持續集成來說太長。構建軟件,運行單元測試,然後讓發佈定義處理部署和部署後系統測試。 –

回答

1

在VSTS中沒有自動化的方法來避免這種情況,您可以將構建策略更改爲XX小時後過期。

  1. 轉到版本控制管理頁面
  2. 選擇一個存儲庫=>在構建驗證部分構建定義的一個分支=>分行政策
  3. 單擊編輯
  4. 選擇小時,如果主人已被更新後選項並指定小時。
+0

我已經考慮過這樣做,但這可能會導致對主分支進行更改,這些分支尚未經過測試,這似乎有風險...... – ASH

+0

@ASH對於我來說不是很清楚,您能否提供一個樣本來解釋它? –

+0

如果我們考慮我的原始問題中列出的示例,那麼開發者B的PR將在我們指定的時間限制內保持有效,而不是立即過期。如果開發者B在該時限內完成他們的拉取請求,則他們的分支將在其當前(修改)狀態下與主分支重新合併。如果沒有產生衝突,那麼變更將被提交。不過,由於主分支已更新,因此與主分支創建的合併與最初測試的合併不同。 – ASH

相關問題