2013-07-08 16 views
3

我們的發展部門不斷壯大,我想強制穩定的行李箱/行李箱。強力穩定行李箱/主分行

到目前爲止,每個開發者都可以進入主/中繼。未來的開發人員應該進入暫存區域,如果所有測試都通過,代碼會自動移到主幹。如果測試失敗,開發人員會收到包含失敗測試的郵件。

我們有幾個存儲庫:一個用於核心產品,幾個插件和每個客戶的存儲庫。

到目前爲止,我們運行SVN和git,但如果有必要,可以將所有repos切換到git。

哪個軟件可以幫助我們完成這件事?

網上有一些文章解釋瞭如何使用gerrit和jenkins來強制一個穩定的分支。

我不確定我是否需要兩者,或者如果最好使用別的東西。

環境:我們是10位開發人員,並使用python和django。

問題:哪個工具可以幫助我強制穩定的主分支?

更新

我去度假的,現在賞金已過期。對不起。謝謝您的回答。

回答

1

網上有一些文章解釋瞭如何使用gerrit和jenkins來強制一個穩定的分支。

我不確定我是否需要兩者,或者如果最好使用別的東西。

  • gerrit是編碼審覈
  • Jenkins是一個作業調度程序,可以運行任何你想要的工作,其中包括:
    • 編譯一切
    • 推出唯一的單元測試。

在每種情況下,這個想法是做一些guarded commit,即推到中間回購(格里特,或一個由詹金斯監測),並只能推到最終回購如果中間過程(審查或自動構建/測試)成功通過。

通過添加中間回購,您可以輕鬆強制最後的「祝福」回購一個獨特的分支,如果提交被視爲值得的,那些中間參考將推向該回購。

1

聽起來你正在尋找建立一個標準的CI能力。您將需要以下基本工具:

  • 源碼版本控制:SVN,GIT中(您已經在這裏介紹)
  • CI服務器:詹金斯(你需要在每個 檢查,以構建和運行測試,並報告結果詹金斯是事實上的標準工具
    用於此)
  • 測試:PyUnit中
  • 神器庫:您將需要一個機制來組織和 歸檔與每個版本創建的增量。這可能是一個 簡單的家庭目錄爲基礎的系統。我也使用了Archiva, ,但還有其他工具。

有很多具體取決於開發過程中,可能是有用的附加工具:

  • 代碼回顧:如果你想使代碼審查正式的門在你 過程中,格里特是一個很好的工具。代碼覆蓋率分析:我以前使用過Java的Java代碼。我是 肯定這是Python覆蓋的一些好工具。
  • 許多其他人:Jenkin的插件庫提供各種 有用的工具可供您使用。花一些時間回顧一下 可用插件一定會花時間。

根據我的經驗,建立正確的文化與找到合適的工具一樣重要。

  • 測試:CI的10個原則之一是「自我測試構建」。在 換句話說,你必須有一個臨界量的單元測試運行。 開發人員必須成爲測試感染者。單元測試必須成爲每個開發人員個人開發過程中自然,高價值部分的 過程。根據我的經驗,建立測試感染文化 是部署CI最難的部分。
  • 經常辦理登機手續:開發商和經理必須以允許頻繁辦理小型登機手續的方式組織工作 。 CI要求每日登記 。這有時是一個難以建立的習慣。
  • 對反饋的反應:CI即時反饋。 開發人員必須有條件迴應即時反饋。 如果單元測試失敗,它的構建破壞。在CI 構建中斷後15分鐘內,負責開發的應該或者有一個修復程序 簽入,或者退回原始的錯誤簽入。
2

問題:哪個工具可以幫助我強制穩定的主分支?

已經研究這種特殊方面CI準病態,因爲我們〜20人PHP /基礎ZF1-開發團隊由從SVN切換到冬季Git的過度(和我成了事實上的混帳MESS-定妝者),我不禁要分享我對這種持續整合的特殊方面的經驗。雖然很明顯,將「臨界質量的單元測試運行」與一系列有條件的參數化Jenkins作業相結合,觸發無限多的有條件參數化作業,覆蓋每一個可以想象到的情況(可能)將是最好和最合適的方式爲了實現持續集成/交付/部署模式,這種遷移所需的空間資源不是微不足道的。

一些問題:

  • 您的團隊是否有某種VCS工作流程,或最低限度的,規則的定義?

  • 你說你的代碼庫大概有多少比例是在某種行爲(如硒),功能或單元測試下?

  • 您的團隊(/高級開發人員)是否真的有時間/興趣,以充分利用gerrit基於同行的代碼審查功能?

  • 平均而言,您在任何特定的一天/一週/一個月內部署了多少次生產?

如果回答這些問題不止一個是「不」,「無」或「非常少/少」,那麼我也許考慮一些白板的時間投資,想通過你的團隊的將Jenkins投入混合之前的一般工作流程。

另外,git-hooks。 Seriously

不過,如果你是在具有CI /詹金斯服務器超級敏銳的,或者你有那些基本已經覆蓋,那麼我會點你這個真正了不起的一篇博客文章中的寶石:

而且它同樣精明的表妹:

哦,當然,非常必要的devopsreactions tumblr。

+0

這裏的答案: - 我們有嚴格的規則如何從VCS獲取代碼的測試和生產服務器。但只有一個小的檢查腳本(以避免unicode錯誤)如何將代碼獲取到VCS中。 - 大約80%的代碼是由unittests測試的。 - 我們每週部署約2次。 – guettli