加入了thoughtworks之后,自己確實(shí)是心里放松很多,找工作那一段時(shí)間的焦慮不安煩躁的狀態(tài)也隨之而去,想著終于可以好好地和朋友們一起出去玩玩了。但是由于我們自身的能力還不足以勝任去了公司之后的工作,所有,由林老師帶隊(duì),幫我們提升自身能力。所以,學(xué)習(xí)開始啦!
我們這一次是使用一個(gè)thoughtworks第一期考試系統(tǒng)這個(gè)項(xiàng)目作為輔助來達(dá)到提高自己的水平的目的!
在做項(xiàng)目時(shí),林老師將我們需要學(xué)習(xí)的知識(shí)點(diǎn)列了出來,我和我的pair領(lǐng)取了學(xué)習(xí)jenkins的任務(wù)目標(biāo)。
好了!開始學(xué)習(xí)啦!
什么是jenkins
jenkins是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
jenkins主要用于
- 持續(xù)、自動(dòng)的構(gòu)建/測(cè)試軟件項(xiàng)目
- 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)
什么是持續(xù)集成
目前持續(xù)集成(CI)已成為當(dāng)前許多軟件開發(fā)團(tuán)隊(duì)在整個(gè)軟件開發(fā)生命周期內(nèi)側(cè)重于保證代碼質(zhì)量的常見做法。它是一種實(shí)踐,旨在緩和和穩(wěn)固軟件的構(gòu)建過程。并且能夠幫助您的開發(fā)團(tuán)隊(duì)?wèi)?yīng)對(duì)如下挑戰(zhàn):
- 軟件構(gòu)建自動(dòng)化 :配置完成后,CI系統(tǒng)會(huì)依照預(yù)先制定的時(shí)間表,或者針對(duì)某一特定事件,對(duì)目標(biāo)軟件進(jìn)行構(gòu)建。
- 構(gòu)建可持續(xù)的自動(dòng)化檢查 :CI系統(tǒng)能持續(xù)地獲取新增或修改后簽入的源代碼,也就是說,當(dāng)軟件開發(fā)團(tuán)隊(duì)需要周期性的檢查新增或修改后的代碼時(shí),CI系統(tǒng)會(huì)不斷確認(rèn)這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開發(fā)者們?cè)跈z查彼此相互依存的代碼中變化情況需要花費(fèi)的時(shí)間和精力。
- 構(gòu)建可持續(xù)的自動(dòng)化測(cè)試 :構(gòu)建檢查的擴(kuò)展部分,構(gòu)建后執(zhí)行預(yù)先制定的一套測(cè)試規(guī)則,完成后觸發(fā)通知(Email,RSS等等)給相關(guān)的當(dāng)事人。
- 生成后后續(xù)過程的自動(dòng)化 :當(dāng)自動(dòng)化檢查和測(cè)試成功完成,軟件構(gòu)建的周期中可能也需要一些額外的任務(wù),諸如生成文檔、打包軟件、部署構(gòu)件到一個(gè)運(yùn)行環(huán)境或者軟件倉庫。這樣,構(gòu)件才能更迅速地提供給用戶使用。
jenkins的優(yōu)點(diǎn)
- Jenkins一切配置都可以在web界面上完成。
- 支持Maven的模塊(Module),Jenkins對(duì)Maven做了優(yōu)化,因此它能自動(dòng)識(shí)別Module,每個(gè)Module可以配置成一個(gè)job。相當(dāng)靈活。
- 測(cè)試報(bào)告聚合,所有模塊的測(cè)試報(bào)告都被聚合在一起,結(jié)果一目了然。
- 構(gòu)件指紋(artifact fingerprint),每次build的結(jié)果構(gòu)件都被很好的自動(dòng)管理,無需任何配置就可以方便的瀏覽下載。
jenkins在本項(xiàng)目中所起的作用
- 作為測(cè)試標(biāo)準(zhǔn),配置在一臺(tái)電腦上
- 每間隔一定的時(shí)間,查詢github是否有新的代碼push,并且自動(dòng)從github上push下最新的代碼
- 并且根據(jù)題目找處相應(yīng)代碼的測(cè)試,自動(dòng)在jenkins中運(yùn)行測(cè)試,并且得出測(cè)試結(jié)果,根據(jù)測(cè)試結(jié)果反饋和執(zhí)行后續(xù)功能