CICD是什么?
持續(xù)集成指的是吼砂,頻繁地(一天多次)將代碼集成到主干逆航。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布渔肩,自動化測試)來驗證因俐,從而盡早地發(fā)現(xiàn)集成錯誤。
它的好處主要有兩個周偎。
(1)快速發(fā)現(xiàn)錯誤抹剩。每完成一點更新,就集成到主干蓉坎,可以快速發(fā)現(xiàn)錯誤澳眷,定位錯誤也比較容易。
(2)防止分支大幅偏離主干蛉艾。如果不是經(jīng)常集成钳踊,主干又在不斷更新衷敌,會導(dǎo)致以后集成的難度變大,甚至難以集成拓瞪。
持續(xù)集成的目的缴罗,就是讓產(chǎn)品可以快速迭代,同時還能保持高質(zhì)量祭埂。它的核心措施是面氓,代碼集成到主干之前,必須通過自動化測試蛆橡。只要有一個測試用例失敗舌界,就不能集成。
持續(xù)部署(continuous deployment)是通過自動化的構(gòu)建航罗、測試和部署循環(huán)來快速交付高質(zhì)量的產(chǎn)品禀横。
Jenkins是一個廣泛用于持續(xù)構(gòu)建的可視化web工具,持續(xù)構(gòu)建說得更直白點粥血,就是各種項目的"自動化"編譯、打包酿箭、分發(fā)部署复亏。Jenkins其實就是一個框架集,可以整合任何你想整合的內(nèi)容缭嫡,實現(xiàn)公司的整個持續(xù)集成體系缔御!如:自動化,性能妇蛀,打包耕突,部署,發(fā)布&發(fā)布結(jié)果自動化驗證评架,接口測試眷茁,單元測試,每日構(gòu)建纵诞,等等
Maven是一個項目管理綜合工具上祈。Maven提供了開發(fā)人員構(gòu)建一個完整的生命周期框架。開發(fā)團隊可以自動完成項目的基礎(chǔ)工具建設(shè)浙芙,Maven使用標準的目錄結(jié)構(gòu)和默認構(gòu)建生命周期登刺。
Demo環(huán)境要求:
OS: Ubuntu 14
Eclipse: Eclipse IDE for Java Developers https://www.eclipse.org/downloads/eclipse-packages/
Jenkins: Jenkins ver. 2.46.3 https://jenkins.io/index.html
Git: 1.8
Maven: 3.5
Tomcat: Tomcat 7
Windows Server 2012:
TFS: Team Foundation System 2015
持續(xù)集成與持續(xù)部署Demo:
框架Pipeline:
Eclipse + TFS + Jenkins + Git + Maven +Tomcat