2009-01-07 196 views
4

聽說谷歌有這樣的一些自動化的過程:構建Server最佳實踐

  • 當您檢查,您的代碼簽入一個臨時位置。
  • 它建成。
  • 風格檢查運行。
  • 測試運行。
  • 如果沒有問題,代碼會轉到實際存儲庫。
  • 您收到一封 - 包含郵件的測試結果,性能圖表,風格檢查結果和你的代碼是否在檢查

所以,如果你想了解,如果你打破東西,或偉大的性能增益你的預期。發生了,你只需登記並收到一封電子郵件,告訴你你需要知道什麼。

您最喜歡的構建服務器最佳實踐是什麼?

+0

搜索這裏。關於構建過程的最佳實踐有很多問題。 – EBGreen 2009-01-07 21:12:19

回答

5

你所描述的谷歌是每個基本的構建過程。具體項目可能有額外的需求,例如 - 我們如何從登臺到生產部署Web應用程序:

  • 構建啓動
  • 直播網站脫機(Apache的重定向到不同的目錄中持有「正在建設中」頁)
  • SVN更新跑了生產服務器
  • 數據庫模式的增量都跑
  • 測試是對更新的源和模式
  • 在失敗的情況下跑:回滾跑(SVN恢復和數據庫架構UNDO)
  • 網站回來在線
  • 構建結束
1

在Java平臺我都試過每一個主要的CI系統存在。我的建議是,支付商業支持的解決方案一直是我見過的最便宜的構建系統。這些事情需要時間來維護,支持和排除故障。尤其是隨着一直在運行的大量構建。

1

您提供的示例工作流程類似於TeamCity提出的示例工作流程。這個想法是:

  1. 代碼
  2. 入住 「預測試」
  3. CI服務器測試 「預提交」
  4. 如果(且僅當)測試通過,CI服務器提交代碼更改爲主要回購

這是一場宗教戰爭,但我更喜歡:

  1. 代碼 - 測試 - 重構(循環)
  2. 提交
  3. CI服務器也驗證您提交

每個負責任的程序員都應該運行所有的te sts提交之前。

第一種方法的主要觀點是它保證SCM中沒有破碎的代碼。但是,我認爲:

  • 你應該信任你的開發人員提交
  • 如果測試需要長之前測試,問題是你的速度慢測試,而不是工作流程
  • 開發者熱衷於保持快速測試
  • 依託CI服務器上運行測試給你虛假的安全感