什么是持續(xù)集成
持續(xù)集成(Continuous Integration),簡稱CI,是持續(xù)地編譯、測試、審查、打包、部署源代碼的過程,是一種軟件開發(fā)實踐。
持續(xù)集成的好處
可以讓整個團(tuán)隊在持續(xù)工作的基礎(chǔ)上收到反饋并進(jìn)行改進(jìn),不必等到開發(fā)周期后期才搜索和修復(fù)缺陷,盡早及時的發(fā)現(xiàn)及反饋問題,減少風(fēng)險,減少人工手動的過程,提高團(tuán)隊合作的效率。
持續(xù)集成的思想
用一張圖展示持續(xù)集成的基本思想。

持續(xù)集成的工作
同樣用一張圖展示持續(xù)集成的工作內(nèi)容。

如何做到持續(xù)集成
1)自動發(fā)現(xiàn)變更:對于資源的變更,無論是實時監(jiān)測還是定時輪訓(xùn),需要做到自動檢測到更變,自動觸發(fā)持續(xù)集成工作;
2)自動化構(gòu)建:做到無人工操作,無人值守;
3)自動測試:自動觸發(fā)測試;
4)自動審查:自動觸發(fā)資源審查;
5)自動部署:自動觸發(fā)部署;
6)反饋問題:對于出現(xiàn)的問題及缺陷能夠及時反饋給相關(guān)人員;
7)回滾機(jī)制:出現(xiàn)問題后,可回滾到正常的版本。
持續(xù)集成原則
1)編寫符合規(guī)范的代碼;
2)編寫單元測試;
3)建議將數(shù)據(jù)庫腳本放入版本庫中;
4)在進(jìn)行代碼提交之前,需要在本地獨立構(gòu)建一次,避免提交之后出現(xiàn)問題中斷持續(xù)集成;
5)如果出現(xiàn)問題,修復(fù)問題是優(yōu)先級最高的工作。
持續(xù)集成工具
Jenkins(推薦)、Apache Continuum、CruiseControl、Hudson、Luntbuild。
其它相關(guān)工具
構(gòu)建工具:gradle(推薦)、maven
單元測試:junit、mockito、moco
代碼審查:CheckStyle、PMD、findbugs、jacoco