首先我們要搞清楚什么是持續(xù)集成(Continuous integration)
提出者Martin Fowler本人對持續(xù)集成是這樣定義的:持續(xù)集成是一種軟件開發(fā)實踐,即團隊開發(fā)成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現集成錯誤。許多團隊發(fā)現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發(fā)內聚的軟件。
隨著軟件開發(fā)復雜度的不斷提高,團隊開發(fā)成員間如何更好地協同工作以確保軟件開發(fā)的質量已經慢慢成為開發(fā)過程中不可回避的問題。尤其是敏捷開發(fā)(Agile) 在軟件工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證軟件的質量也顯得尤其的重要。
持續(xù)集成正是針對這一類問題的一種軟件開發(fā)實踐。
持續(xù)集成的核心價值在于:
減少風險,減少重復過程
任何時間、任何地點生成可部署的軟件
增強項目的可見性
建立團隊對開發(fā)產品的信心
持續(xù)集成的原則
所有的開發(fā)人員需要在本地機器上做本地構建,然后再提交的版本控制庫中,從而確保他們的變更不會導致持續(xù)集成失敗。
開發(fā)人員每天至少向版本控制庫中提交一次代碼。
開發(fā)人員每天至少需要從版本控制庫中更新一次代碼到本地機器。
需要有專門的集成服務器來執(zhí)行集成構建,每天要執(zhí)行多次構建。
每次構建都要100%通過。
每次構建都可以生成可發(fā)布的產品。
修復失敗的構建是優(yōu)先級最高的事情。
測試是未來,未來是測試
Jenkins
Jenkins 是一個開源項目,提供了一種易于使用的持續(xù)集成系統(tǒng),使開發(fā)者從繁雜的集成中解脫出來,專注于更為重要的業(yè)務邏輯實現上。同時 Jenkins 能實施監(jiān)控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩(wěn)定性。
安裝
從Jenkins官網下載最新war文件
運行 java -jar jenkins.war
運行成功會在用戶個人目錄下新建.jenkins/文件夾
訪問localhost:8080就能到達Jenkins首頁
系統(tǒng)管理 >> 系統(tǒng)設置
這里以QQ郵箱配置為例,根據自己的郵件提供商修改
設置有效URL和發(fā)送郵箱
注意SMTP服務器是系統(tǒng)管理員郵件提供商的服務器
安裝Git插件
系統(tǒng)管理 >> 插件管理 >> 可選插件
查找Git plugin,勾選,直接安裝,重啟Jenkins
Jenkins提供了很多優(yōu)秀的插件,這里有一篇不錯的介紹Jenkins Job相關插件的文章
如果你覺得已有的插件不能滿足你的需求,可以自己開發(fā)(推薦:淺析Jenkins插件開發(fā))
用戶與安全
系統(tǒng)管理 >> 管理用戶
可添加和管理用戶
系統(tǒng)管理 >> Configure Global Security(安全設置)
可配合安全矩陣管理用戶權限
DEMO
新建一個freestyle項目
配置源碼,這里以git為例,Credential可以配置帳號密碼、ssh
https://github.com/wuyanxin/jenkins_nodejs_test 是一份簡單示例代碼,包含啟動失敗、啟動成功、測試失敗、和測試成功的例子
構建觸發(fā)器
我選擇的是定時器模式,配置語法如crontab,可點擊右側的問號查看說明。
順便說說觸發(fā)遠程構建,可以通過遠程請求對應URL觸發(fā),這個可以配合版本庫的hook使用,自動化測試新commit
構建
可通過四種方式構建,batch、shell、ant、maven,根據自己需要自行選擇。
我用shell, 可以增加多步構建,按順序執(zhí)行
構建之后
可打包、構建其他項目、發(fā)布測試報告、發(fā)布javadoc、git發(fā)布、郵件提醒
這里就只談談郵件提醒
郵件提醒
這樣我們就完成了持續(xù)集成環(huán)境的搭建,啟動失敗或者測試失敗將會發(fā)送郵件通知。
相信看了這些案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!
相關閱讀:
html里怎樣實現異步上傳文件
marquee元素如何實現滾動字體與圖片的效果
怎么給span標記樣式設置width屬性
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com