0

我們有一個CI過程,我們將開發分支中的更改推送到dev服務器和QA服務器進行測試。一旦我們對變更工作感到滿意並且QA已通過測試,我們希望櫻桃選擇來自該品牌的更改並將其合併到主分支中,以推送到我們的暫存和發佈環境。目前,在TFS的構建/發佈過程中,發佈到開發和質量保證是自動化的。是否有一個任務和/或變量,我們可以添加,當我們推動分期時,我們可以櫻桃選擇更改併合併到主分支並將主分支移動到暫存環境?現在,這將是一個手動過程,容易出現人爲錯誤,並且會破壞我們的CI過程,從而依賴於人工干預。我們正在使用當前的TFS系統。Cherry Pick在TFS中自動發佈

謝謝。

回答

0

此合併過程很容易出錯。從你的過程看起來也是如此,它是一個不同的代碼庫或包,它在從開發到qa或升級時被測試。

我建議你看看基於主幹的構建。如果您正在開發新功能並且不屬於下一個計劃版本,則應該在功能分支中完成。或者一旦中繼線已經過測試並通過集成,用戶接受,性能或安全測試,那麼您可以從中繼線分支出來並創建候選分支分支。發佈候選分支的任何更改都需要合併到主幹。在這一點上,不要指望有很多變化。這個想法是儘可能晚地分支出去。

基於主幹的構建並不新鮮。它已經被大小公司所採用,並且接受了敏捷和devops實踐。

注意:正在開發特定功能的開發人員應創建自己的功能分支。一旦穩定,它們就可以合併到主幹。然後可以刪除特徵分支。

0

簡短的回答是,沒有辦法自動做你要問的東西。如果你想這樣做,你必須編寫自己的代碼才能這樣做。我強烈建議不要這樣做,原因如下:

你正在做的是持續集成的對立面。從代碼庫挑選正確集成的工作特徵並將它們合併到另一個分支將更好地稱爲連續隔離。

通過利用已在集成狀態進行了測試對一個開發和QA環境,並移動到一個新的分支和重建的變化,你實際上完全無效做了所有以前的測試。

更好的方法是使用功能切換(又名功能標誌)來禁用仍在開發中的功能,並將應用程序以禁用不完整功能的集成狀態發送。