說(shuō)到CI/CD(持續(xù)集成/持續(xù)交付),很多人都會(huì)聯(lián)想到到Jenkins。本篇文章主要針對(duì)“持續(xù)集成”進(jìn)行簡(jiǎn)單講解,包括“jenkins是什么吻育、jenkins的特點(diǎn)念秧、jenkins應(yīng)用場(chǎng)景以及持續(xù)集成必備條件、流程等”布疼。希望感興趣的小伙伴可以堅(jiān)持看下去同時(shí)歡迎提出寶貴的意見(jiàn)讓我們一起進(jìn)步摊趾!
01:為什么要用持續(xù)集成
(1)對(duì)重復(fù)的編譯發(fā)布等操作進(jìn)行抽象,減少重復(fù)過(guò)程
(2)及時(shí)發(fā)現(xiàn)各種沖突和錯(cuò)誤,減少風(fēng)險(xiǎn)
(3)任何時(shí)間,任何地點(diǎn)生成可部署的軟件
(4)開(kāi)發(fā)人員和運(yùn)維人員都減輕了工作負(fù)擔(dān)
02:持續(xù)集成的必備條件
(1)一個(gè)自動(dòng)構(gòu)建過(guò)程,包括自動(dòng)編譯、分發(fā)游两、部署和測(cè)試等砾层。
(2)一個(gè)代碼倉(cāng)庫(kù),即需要版本控制軟件來(lái)保障代碼的可維護(hù)性,同時(shí)作為構(gòu)建過(guò)程中的其中一個(gè)素材。
(3)一個(gè)持續(xù)集成服務(wù)器
03:持續(xù)集成的流程
(1)測(cè)試環(huán)境:
- 開(kāi)發(fā)人員將代碼上傳至Git服務(wù)器
- Jenkins持續(xù)集成服務(wù)器拉取Git上的代碼并配合maven將項(xiàng)目自動(dòng)構(gòu)建成war包或jar包
- 通過(guò)shell腳本自動(dòng)發(fā)布項(xiàng)目到測(cè)試服務(wù)器
(2)生產(chǎn)環(huán)境:測(cè)試環(huán)境將項(xiàng)目測(cè)試沒(méi)問(wèn)題后,將項(xiàng)目推送到線上正式環(huán)境贱案。
04:持續(xù)集成(Continuous Integration)
(1)在傳統(tǒng)的軟件開(kāi)發(fā)中,項(xiàng)目的整合是在項(xiàng)目開(kāi)發(fā)結(jié)束所有人提交了代碼之后;而持續(xù)集成是在項(xiàng)目的開(kāi)發(fā)過(guò)程中不斷地進(jìn)行環(huán)境構(gòu)建肛炮、功能的測(cè)試與集成
(2)CI是一種軟件開(kāi)發(fā)實(shí)踐,持續(xù)集成強(qiáng)調(diào)開(kāi)發(fā)人員提交了新代碼之后,立刻進(jìn)行構(gòu)建、單元測(cè)試宝踪。根據(jù)測(cè)試結(jié)果,我們可以確定新代碼和原有代碼能否正確地集成在一起
05:持續(xù)交付(Continuous Delivery)
CD在持續(xù)集成的基礎(chǔ)上,將集成后的代碼部署到更貼近真實(shí)運(yùn)行環(huán)境的(類(lèi)生產(chǎn)環(huán)境)中
06:持續(xù)部署(continuous deployment)
(1)CD是持續(xù)交付的下一步,指的是代碼通過(guò)評(píng)審以后自動(dòng)部署到生產(chǎn)環(huán)境
(2)一個(gè)多人開(kāi)發(fā)的項(xiàng)目中,在代碼提交(CHECK-IN)
到版本庫(kù)(SOURCE REPOSITORY)
后,集成工具Jenkins能夠進(jìn)行:環(huán)境的構(gòu)建(BUILD)
|測(cè)試環(huán)境(TEST)
的功能測(cè)試|過(guò)渡環(huán)境(STAGING)
的功能測(cè)試|正式環(huán)境(PRODUCTION)
的功能測(cè)試侨糟。
07:持續(xù)集成的項(xiàng)目開(kāi)發(fā)周期
08:jenkins是什么
(1)Jenkins是一個(gè)開(kāi)源的、可擴(kuò)展的持續(xù)集成瘩燥、交付秕重、部署(軟件/代碼的編譯、打包厉膀、部署)的基于web界面的平臺(tái)溶耘。
(2)Jenkins通常與版本管理工具(SCM)、構(gòu)建工具結(jié)合使用
(3)常用版本控制工具有SVN服鹅、GIT
(4)常用構(gòu)建工具有Maven凳兵、Ant、Gradle
09:jenkins的特點(diǎn)
(1)易于安裝:只需通過(guò)java -jar jenkins.war即可
(2)易于配置:所有的配置都可能通過(guò)jenkins提供的web界面完成
(3)生成JUnit或TestNG的測(cè)試報(bào)告
(4)文件識(shí)別:jenkins能跟蹤每次構(gòu)建生成哪些jar包以及使用哪個(gè)版本的jar包
(5)分布式構(gòu)建
(6)插件支持:jenkins可以通過(guò)第三方插件擴(kuò)展,也可以根據(jù)團(tuán)隊(duì)需要開(kāi)發(fā)插件
10:jenkins的應(yīng)用場(chǎng)景
(1)Jenkins集成郵件通知模板
(2)Jenkins+Ant+Robotium構(gòu)建自動(dòng)化測(cè)試持續(xù)集成
(3)Jenkins+ant+jmeter搭建持續(xù)集成的接口測(cè)試平臺(tái)
(4)jenkins + Git + Maven配置
(5)使用jenkins + python + selenium一步步搭建web自動(dòng)化測(cè)試“框架”
(6)......