概念
互聯(lián)網(wǎng)軟件的開(kāi)發(fā)和發(fā)布惹悄,已近形成了一套標(biāo)準(zhǔn)流程微姊,最重要的組成部分就是持續(xù)集成
持續(xù)集成
持續(xù)集成指的是毁枯,頻繁的將代碼集成到主干
他的好處主要有兩個(gè)
快速發(fā)現(xiàn)錯(cuò)誤剂跟,沒(méi)完成一點(diǎn)更新业扒,就集成到主干检吆,可以快速發(fā)現(xiàn)錯(cuò)誤,定位錯(cuò)誤也比較容易
防止分支發(fā)福偏離主干程储,如果不是經(jīng)常集成蹭沛,主干又在不斷更新臂寝,會(huì)導(dǎo)致以后集成的難度變大,甚至難以集成
持續(xù)集成的目的摊灭,就是讓產(chǎn)品可以快讀迭代咆贬,同時(shí)還能保持高質(zhì)量,他的核心措施是帚呼,代碼集成到主干之前掏缎,必須同構(gòu)自動(dòng)化測(cè)試,只要由一個(gè)測(cè)試用例失敗煤杀,就不能集成
持續(xù)部署
定義:持續(xù)部署眷蜈,是持續(xù)交付的下一步,指的是代碼同構(gòu)評(píng)審以后沈自,自動(dòng)部署到生成環(huán)境酌儒。
目標(biāo):代碼在任何時(shí)刻都是可部署的,可以進(jìn)入生成階段
前提L能自動(dòng)化完成測(cè)試酥泛,構(gòu)建今豆,部署等步驟。
Jenkins概念
Jenkins 是一個(gè)開(kāi)源軟件項(xiàng)目柔袁,是基于Java開(kāi)發(fā)的一種可拓展持續(xù)集成工具呆躲,主要用于持續(xù)、自動(dòng)地構(gòu)建 / 測(cè)試 / 集成軟件項(xiàng)目以及監(jiān)控一些定時(shí)執(zhí)行的任務(wù)捶索。
Jenkins目的
1插掂、持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目腥例。
2辅甥、監(jiān)控軟件開(kāi)放流程,快速問(wèn)題定位及處理燎竖,提示開(kāi)放效率璃弄。
特性
易于安裝,只要把 jenkins.war 部署到 Tomcat 即可運(yùn)行
易于配置构回,所有配置都是通過(guò)其提供的 web 界面實(shí)現(xiàn)
集成 RSS/E-mail夏块,通過(guò) RSS 發(fā)布構(gòu)建結(jié)果或當(dāng)構(gòu)建完成時(shí)通過(guò) e-mail 通知
?生成 JUnit / TestNG 測(cè)試報(bào)告
分布式構(gòu)建,支持 Jenkins 能夠讓多臺(tái)計(jì)算機(jī)一起構(gòu)建/測(cè)試
插件支持纤掸,支持?jǐn)U展插件脐供,你可以開(kāi)發(fā)適合自己團(tuán)隊(duì)使用的工具
產(chǎn)品發(fā)布流程
產(chǎn)品設(shè)計(jì)成型 → 開(kāi)發(fā)人員開(kāi)發(fā)代碼 → 測(cè)試人員測(cè)試功能 → 運(yùn)維人員發(fā)布上線