版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ROAD公開(kāi)課之
Linux持續(xù)集成
Long2013年11月19號(hào)日構(gòu)建(DailyBuild)“日創(chuàng)建”作為軟件開(kāi)發(fā)也是人們經(jīng)常討論的一個(gè)觀點(diǎn),McConnell在他的《快速軟件開(kāi)發(fā)》中將日創(chuàng)建作為一個(gè)最佳實(shí)踐來(lái)推薦。同時(shí),日創(chuàng)建也是微軟很出名的一項(xiàng)開(kāi)發(fā)方法.但是,日創(chuàng)建只是最低要求。一個(gè)完全自動(dòng)化的過(guò)程讓你可以每天完成多次創(chuàng)建,這是可以做到的,也是完全值得的.實(shí)現(xiàn)自動(dòng)化日創(chuàng)建需要做以下幾部分的工作:將所有的源代碼保存在單一的地點(diǎn),讓所有人都能從這里獲取最新的源代碼(以及以前的版本).使創(chuàng)建過(guò)程完全自動(dòng)化,讓任何人都可以只輸入一條命令就完成系統(tǒng)的創(chuàng)建.使測(cè)試完全自動(dòng)化,讓任何人都可以只輸入一條命令就運(yùn)行一套完整的系統(tǒng)測(cè)試.確保所有人都可以得到最新、最好的可執(zhí)行文件.然而,上述這些都必須得到制度的保證,而且向一個(gè)項(xiàng)目中引入這些實(shí)踐需要耗費(fèi)相當(dāng)大的代價(jià),但是一旦實(shí)踐建立起來(lái),保持它的正常運(yùn)轉(zhuǎn)就不需要花太多精力.什么是持續(xù)集成(CI)“持續(xù)集成是一種軟件開(kāi)發(fā)實(shí)踐,即團(tuán)隊(duì)成員經(jīng)常集成他們的工作,通常每個(gè)成員每天至少集成一次這將導(dǎo)致每天發(fā)生多次集成。每次集成都通過(guò)自動(dòng)化的構(gòu)建(包括測(cè)試)來(lái)驗(yàn)證,從而盡快檢測(cè)出BUG.MartinFowler典型的持續(xù)集成過(guò)程持續(xù)集成從研發(fā)人員開(kāi)始提交代碼開(kāi)始就可以運(yùn)用.通常它的過(guò)程包括如下:研發(fā)人員完成本地構(gòu)建研發(fā)團(tuán)隊(duì)合并代碼后完成本地構(gòu)建研發(fā)團(tuán)隊(duì)提交代碼進(jìn)系統(tǒng)svn系統(tǒng)測(cè)試或者專人進(jìn)行系統(tǒng)集成構(gòu)建這邊需要注意的持續(xù)集成有2個(gè)過(guò)程:1.研發(fā)人員或團(tuán)隊(duì)的本地構(gòu)建2.系統(tǒng)持續(xù)集成的構(gòu)建持續(xù)集成的價(jià)值持續(xù)集成作為一個(gè)很好的開(kāi)發(fā)實(shí)踐,主要有如下方面的價(jià)值:持續(xù)集成的產(chǎn)品能盡早的發(fā)現(xiàn)問(wèn)題降低代碼提交引進(jìn)bug風(fēng)險(xiǎn)降低代碼聯(lián)調(diào)帶來(lái)的bug風(fēng)險(xiǎn)增強(qiáng)項(xiàng)目質(zhì)量的可見(jiàn)性減少重復(fù)過(guò)程任何時(shí)間、任何地點(diǎn)都能生成可部署的軟件對(duì)開(kāi)發(fā)團(tuán)隊(duì)的軟件產(chǎn)品建立起更強(qiáng)大的產(chǎn)品信心持續(xù)集成的原則統(tǒng)一的配置管理集成越頻繁,效果越好自動(dòng)化創(chuàng)建過(guò)程,以及時(shí)間的加速構(gòu)建環(huán)境和真實(shí)環(huán)境一致性運(yùn)行進(jìn)度的可跟蹤性,方便實(shí)時(shí)了解構(gòu)建進(jìn)度產(chǎn)生的軟件包進(jìn)行自動(dòng)化測(cè)試測(cè)試結(jié)果的自動(dòng)發(fā)送和收集整理失敗用例或構(gòu)建的響應(yīng)自動(dòng)化測(cè)試用例庫(kù)的更新和維護(hù)持續(xù)集成的實(shí)現(xiàn)持續(xù)集成的關(guān)鍵在于自動(dòng)化,如何自動(dòng)化的進(jìn)行全部過(guò)程是重中之重.它的基本要素包括:源碼管理,版本控制自動(dòng)化觸發(fā),構(gòu)建,編譯代碼審查,覆蓋率檢測(cè)自動(dòng)裝包,升級(jí),產(chǎn)品軟件的部署自動(dòng)化測(cè)試測(cè)試數(shù)據(jù)日志收集,分析,匯總報(bào)告整理持續(xù)反饋源碼管理&版本控制建立統(tǒng)一的配置管理庫(kù)所有開(kāi)發(fā)人員都應(yīng)該在統(tǒng)一的開(kāi)發(fā)分支進(jìn)行開(kāi)發(fā)提交代碼到集成分支之前要確保開(kāi)發(fā)分支構(gòu)建通過(guò)開(kāi)發(fā)人員要隨時(shí)保持代碼的更新構(gòu)建失敗,開(kāi)發(fā)人員要及時(shí)修復(fù),最壞情況可能需要回滾源代碼代碼多時(shí),建議分批提交
常用的版本控制工具有:SVN,CVS,VSS等自動(dòng)化測(cè)試用例框架Python+robotframework+selenium自動(dòng)構(gòu)建工具業(yè)內(nèi)目前用的比較多的構(gòu)建工具有:CruiseControl:Hudson:Jenkins:IBMRationalclearCase&ClearQuestJenkins由來(lái)和特點(diǎn)Jenkins由以前的hudson更名而來(lái)。Jenkins的主要功能是監(jiān)視重復(fù)工作的執(zhí)行,例如軟件工程的構(gòu)建或在cron下設(shè)置的jobs。*軟件的持續(xù)構(gòu)建和測(cè)試,此時(shí)Jenkins與CruiseControl或DamageControl相似。本質(zhì)上提供了一個(gè)易于使用的持續(xù)集成系統(tǒng),使得開(kāi)發(fā)人員更容易地將改變集成到工程中,使得用戶更容易獲得一個(gè)新的build。自動(dòng)化,持續(xù)的構(gòu)建提高了軟件開(kāi)發(fā)的效率。*監(jiān)視外部運(yùn)行的job的執(zhí)行,例如cronjobs或procmailjobs,即使這些jobs是運(yùn)行在遠(yuǎn)程的機(jī)器上。例如,對(duì)于cron,你將會(huì)收到email包含job的output,你需要檢查email來(lái)確認(rèn)是否jobbroke。Jenkins將保持這些outputs且使得你更加容易地注意到j(luò)ob的broke。Jenkins主要特點(diǎn)容易安裝,只需要執(zhí)行Java-jarjenkins.war,或者直接部署到一個(gè)servletcontainer中,例如tomcat。不需要安裝,不需要數(shù)據(jù)庫(kù)的支持。容易配置,jenkins可以完全地通過(guò)友好的webGUI來(lái)配置,且配置頁(yè)面支持配置項(xiàng)的錯(cuò)誤檢查和很好的在線幫助。不需要手動(dòng)地編輯xml的配置文件,但是jenkins也支持手動(dòng)修改xml配置文件。項(xiàng)目源碼修改的檢測(cè),jenkins能夠從項(xiàng)目的Subversion/CVS生成最近修改的集合列表,且改方式非常有效,不會(huì)增加Subversion/CVSRepository的負(fù)載。可讀的永久的鏈接生成,jenkins對(duì)于大部分pages都生成清楚的可讀的永久的鏈接,例如''latestbuild"/"latestsuccessfulbuild",因此可以容易地在其他的地方引用jenkins的生成的pages。RSS/EMail/IM集成,可以通過(guò)RSS,EMail或IM來(lái)實(shí)時(shí)地監(jiān)視build的失敗。Build完成后仍然可以tag,支持在build完成后tag或重tag。Junit/TestNG測(cè)試報(bào)告,能夠很好地顯示各種測(cè)試的報(bào)告,且可以生成失敗的趨向圖。分布式build,jenkins能夠分發(fā)build/test的負(fù)載到多臺(tái)機(jī)器,能夠更好地利用硬件資源,提高build的時(shí)間。文件標(biāo)識(shí),jenkins可以標(biāo)識(shí)build產(chǎn)生的文件,例如jars。
插件支持,jenkins可以通過(guò)第三方的插件來(lái)擴(kuò)展,目前已有超過(guò)200以上插件。跨平臺(tái),支持幾乎所有的平臺(tái),例如Windows,Ubuntu/Debian,RedHat/Fedora/CentOS,MacOSX,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo。Jenkins的安裝1.登錄官網(wǎng)去下載對(duì)應(yīng)的war包2.安裝jdksudoyuminstalljava3.啟動(dòng)jenkins
nohupjava-jarjenkins.war>$LOGFILE2>&1
Jenkins的安裝可選:
我們也可以使用web服務(wù)器來(lái)啟動(dòng)jenkins,以tomcat為例,只要把jenkins.w
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)二級(jí)考試C語(yǔ)言考試題含答案
- 2025青驕第二課堂禁毒知識(shí)競(jìng)賽必考題庫(kù)及答案
- 2025年基站維護(hù)工程師面試常見(jiàn)題目及答案
- 醫(yī)院感染的預(yù)防和控制專項(xiàng)習(xí)題(附帶答案解析)
- 大學(xué)教育學(xué)考試練習(xí)題及答案921
- 手術(shù)室護(hù)理考試試題-有答案
- 街道協(xié)管員考試試題及答案
- 2022~2023無(wú)人機(jī)資格證考試題庫(kù)及答案第735期
- 2025心理咨詢師心理診斷技能模擬題庫(kù)及答案
- 2025年四平市糧食技工學(xué)校教師招聘考試題庫(kù)及答案解析
- 話語(yǔ)體系構(gòu)建的文化自信與敘事創(chuàng)新課題申報(bào)書
- 2026年春蘇教版新教材小學(xué)科學(xué)二年級(jí)下冊(cè)(全冊(cè))教學(xué)設(shè)計(jì)(附教材目錄P97)
- 2026年基因測(cè)序技術(shù)臨床應(yīng)用報(bào)告及未來(lái)五至十年生物科技報(bào)告
- 服裝銷售年底總結(jié)
- 文物安全保護(hù)責(zé)任書范本
- 2025公文寫作考試真題及答案
- 停電施工方案優(yōu)化(3篇)
- DB64∕T 1279-2025 鹽堿地綜合改良技術(shù)規(guī)程
- 2025年度耳鼻喉科工作總結(jié)及2026年工作計(jì)劃
- 2024年執(zhí)業(yè)藥師《藥學(xué)專業(yè)知識(shí)(一)》試題及答案
- 統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)無(wú)紙化考評(píng)-趣味樂(lè)考 玩轉(zhuǎn)語(yǔ)文 課件
評(píng)論
0/150
提交評(píng)論