在進行持續整合時, 你需要準備以下事情
1. 版本控制
你需要將建構或是編譯系統, 所有需要用到的東西, 儲存到一個地方, 以確保將來可以隨時建構出相同一份系統. 這件事情看起來很簡單, 但是還是常常會沒做好. 記得重點是全部會用到的, 都要放進來.
例如: 很多人沒有放 3rd party 的 library, 等到要 build 的時候, 才去網路上下載, 或者是才去 copy 一版進來, 這是不對的. 此外, 你的建構環境或是編譯系統也是要存放一份, 否則可能因你的環境不同, 也會產生出不同的東西.
2. 自動化編譯
不要只有 IDE 環境來編譯系統, 必須要能用 command line 來編譯, 這樣你才能控制所有東西, 並且有以下好處
a. 確定所有事情可以自動化執行
b. build script 需要版本控制, 將來才能對 script 修復和重構
c. 編譯時間對某些系統是重要的考量, 有 script 才有機會去調整
3. 自動化測試
如果你沒有做自動化測試, 那整個持續整合的系統就只是編譯你的程式而已, 這樣就弱掉許多. 這裡你需要三類型的測試
a. 單元測試: 對於某個單元(function, class 或是 method) 進行測試. 這需要在 10 分鐘內執行結束.
b. 元件測試: 測試某些模組, 或是單元整合起來, 是否能運作正確.
c. 驗收測試: 通常是要驗證是否滿足客戶的驗收標準, 是否符合當初所談的需求流程.
4. 持續整合的系統
是否一定需要持續整合的系統, 這件事情可以討論. 因為持續整合重點在 practice, 在於團隊的紀律和心態, 而非是用某個工具.
不過如果你需要使用持續整合的系統, CruiseControl Family 或是 Jenkins 都是不錯的考量. 如果你是微軟的愛好者, 那她那一套也可以加減用.
不過這些東西, 似乎除了 IDE 環境, 很多公司好像都沒有, 有點蛋蛋的悲傷 …...
留言列表