在過去30天中,我們一步一0步地建立了我們的CI Server,
從最初簡單的建置專案,到最後擁有完整了測試、分析甚至是部署功能,
讓Jenkins成為幫助我們控管專案程式碼品質的好幫手,
並可以讓我們在程式碼可能產生問題時及早發現,讓專案的進行更加順暢!
※Jenkins所提供的各種服務
在這一系列的文章之中,主要根據Jenkins所提供幾個主要功能做了介紹。
1. 使用Jenkins的原因
CI Server 01 - 從零開始
CI Server 02 - 為什麼我們需要CI Server?
CI Server 03 - Jenkins簡介
2. 打造Jenkins Build Machine
CI Server 04 - 安裝Jenkins
CI Server 05 - 新增建置工作
CI Server 08 - 設定每日建置
CI Server 17 - 使用MsBuild整合常用工作
CI Server 18 - 使用MsBuild控制建置流程
CI Server 19 - 使用Jenkins建置Asp.Net MVC專案
CI Server 22 - 使用Web Deployment Tool部署網站
3. 各種測試為系統功能把關
CI Server 06 - 加入單元測試
CI Server 07 - 單元測試涵蓋率
CI Server 23 - 使用Selenium進行瀏覽器自動化測試
CI Server 24 - 使用Jenkins執行網頁自動化測試
4. 靜態程式碼分析
CI Server 09 - 統一程式碼撰寫風格 (StyleCop)
CI Server 10 - 讓Jenkins顯示StyleCop報表
CI Server 11 - 靜態程式碼分析 (FxCop)
CI Server 12 - 整合FxCop報表
CI Server 13 - 找出重複的程式碼 (Simian)
CI Server 14 - 顯示重複程式碼區塊報表 (Simian)
CI Server 15 - 分析程式碼複雜度 (Source Monitor)
CI Server 16 - 整合程式碼複雜度及深度報表 (Source Monitor)
CI Server 20 - 使用JsLint及CssLint檢查語法正確性
CI Server 21 - 在每日建置中檢查JavaScript及Css CI Server 21 - 在每日建置中檢查JavaScript及Css
5. 讓Jenkins擴充更好用
CI Server 25 - 替Jenkins加入登入及權限控管系統
CI Server 26 - 使用Thinbackup PlugIn備分Jenkins建置設定
CI Server 27 - 使用LogParser PlugIn分析建置紀錄
CI Server 28 - 發送每日建置結果報表
CI Server 29 - 找出程式碼中待修正的項目 (ex. TODO)
※有了Jenkins讓生活更美好
透過Jenkins接手為我們處理每天可能需要花費時間人力進行的工作之後,
我們可以用更少的代價換取信賴度更高的服務,
由於系統全自動進行各項工作,執行的每一步驟也都有Log紀錄,
讓我們還提供了各種報表讓我們一眼看出關鍵點,
讓我們的軟體開發流程更加的順暢。
1. 讓工程師更專注於開發
相較於讓工程師透過各種程式碼分析工具來掃描自己所撰寫的程式,
雖然程式碼的品質可以在開發時期就保持穩定優良,但也花費了大量的時間,
而在交給Jenkins之後,工程師只要專注在開發、撰寫單元測試上,
其他的所有分析的工作就交給Jenkins來處理,
並透過每天Review專案的報表就可以知道今天所開發程式碼的狀況,
也不怕自己在忙碌時所check in的程式碼無法建置。
2. 讓專案的異動更靈活
由於我們有針對程式碼撰寫單元測試,當異動需求發生時,
我們可以放心大膽的更改我們的程式碼,
若影響到其他的功能就會因為單元測試不通過而得到Jenkins的警告通知,
甚至我們還可以使用之前所建置好的版本來進行還原的動作 (若有設定保留每次的Build),
不必因為害怕改壞原本穩定的功能而讓程式碼的複雜度越來越高
(因為每次總是在最小的範圍修正bug,很可能會養出數千行的function)
3. 讓專案的管理更輕鬆
每天我們都會收到Jenkins所寄出來的專案分析報告,
我們可以很快地看出是不是今天check in的程式碼都有通過測試,
如果有不符合團隊程式碼風格,或是其他有潛在風險的問題都可以第一時間發現,
也因為我們準備好了建置專案的MakeFile,就算要將新專案加入Jenkins也很輕鬆,
而萬一要對所有的程式碼增加額外的分析或操作,也只要修改共用的MakeFile即可,
對於主管來說專案程式碼的透明度更高,不再只能透過Code Review才能控管品質。
※總結
終於寫完了這一系列的Jenkins Server介紹,
也達成了今年自己的小小目標之一,希望這系列文章能夠幫助到想要導入CI Server的朋友,
在練習架設自己的CI Server過程之中,其實遇到了很多瓶頸也學到了很多經驗,
想在這邊把這些東西分享給大家,讓大家在設定Jenkins的過程中可以更快速的上手,
並且感受到CI Server所帶來的種種好處,讓開發的流程更加的順暢。
最後開心的就是終於鐵人鍊成啦!謝謝大家!