1 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
搭建持續(xù)集成首先要了解什么是持續(xù)集成,帶著明確的目標(biāo)去搭建持續(xù)集成環(huán)境才能讓我們少走很多彎路。持續(xù)集成(Continuous integration)簡(jiǎn)稱(chēng)CI,是一種軟件開(kāi)發(fā)的實(shí)踐,可以讓團(tuán)隊(duì)在持續(xù)集成的基礎(chǔ)上收到反饋并加以改進(jìn),不必等到開(kāi)發(fā)的后期才尋找和修復(fù)缺陷。當(dāng)然要明白的是持續(xù)集成環(huán)境的搭建也不是一勞永逸的,隨著軟件項(xiàng)目復(fù)雜度的增加,持續(xù)集成的環(huán)境同樣要加以維護(hù)以確保集成環(huán)境的可靠性。
持續(xù)集成的重要要素:1.統(tǒng)一的代碼庫(kù)。
2.CI服務(wù)器
3.自動(dòng)化測(cè)試和構(gòu)建的腳本
4.Slaves
持續(xù)集成的流程:CI服務(wù)器控制持續(xù)集成的整個(gè)過(guò)程,輪詢(xún)代碼庫(kù)更新,根據(jù)預(yù)定義的腳本進(jìn)行項(xiàng)目的構(gòu)建,服務(wù)器將任務(wù)分配到Slave端。這就是整個(gè)持續(xù)集成的過(guò)程,我們需要根據(jù)我們的項(xiàng)目需求,制定好一個(gè)完善的持續(xù)集成方案,然后根據(jù)方案選擇CI服務(wù)器和版本管理軟件,我們的項(xiàng)目選擇了Jenkins+Github的持續(xù)集成環(huán)境,這也是我要主要和大家講述的。
為什么要選擇Jenkins?
Jenins是現(xiàn)在非常流行的持續(xù)集成CI服務(wù)器,這與它的前身Hudson也有著很大的關(guān)系,Jenkins易于安裝,不需要數(shù)據(jù)庫(kù)的支持,直接通過(guò)Web界面進(jìn)行配置,而且集成了RSS/Email的通知機(jī)制,支持分布式構(gòu)建,具有豐富的插件,這些都是Jenkins相比其他持續(xù)集成服務(wù)器的優(yōu)勢(shì)所在。
對(duì)于版本控制軟件的選擇要看項(xiàng)目需要了,可能是SVN也可能是Git,一般來(lái)說(shuō)Jenkins都有提供插件支持,下面講解一下Jenins+Github持續(xù)集成環(huán)境搭建的細(xì)節(jié)。
這個(gè)持續(xù)集成環(huán)境構(gòu)建的主要流程就是Jenins會(huì)在后臺(tái)運(yùn)行,輪詢(xún)版本控制的存儲(chǔ)庫(kù),當(dāng)發(fā)現(xiàn)版本庫(kù)出現(xiàn)變更,就會(huì)通過(guò)預(yù)定義的構(gòu)建腳本進(jìn)行項(xiàng)目的構(gòu)建,Jenkins會(huì)根據(jù)項(xiàng)目需求將構(gòu)建的任務(wù)分配到Slave端。一般的項(xiàng)目構(gòu)建過(guò)程主要分為自動(dòng)化編譯和自動(dòng)化測(cè)試兩個(gè)階段,這同樣是你腳本發(fā)揮作用的階段。
1.Jenkins安裝
進(jìn)入Jenkins官方網(wǎng)站下載最新的Jenkins,Jenkins提供war包的下載和各種操作系統(tǒng)的安裝文件,選擇war包即可。
Jenkins的啟動(dòng)方法有兩種:
第一種是使用tomcat直接打開(kāi),就是把jenkins.war放入tomcat下的 webapps目錄下,當(dāng)啟動(dòng)jenkins時(shí),就會(huì)自動(dòng)在webapps下建立jenkins目錄。然后再瀏覽器的地址欄輸入http://localhost:8080/jenkins
另一種方法要確保系統(tǒng)中安裝了jdk,并且配置了環(huán)境變量,檢測(cè)方法就是在命令行輸入java回車(chē)后有多行的命令符提示。直接在命令行輸入java -jar jenkins.war即可啟動(dòng)jenkins,默認(rèn)會(huì)運(yùn)行在8080端口,切換到瀏覽器的地址欄輸入http;//localhots:8080,localhost可以改成ip地址。
看到Jenkins的頁(yè)面說(shuō)明jenkins已經(jīng)部署成功了。2.插件安裝
在"系統(tǒng)管理->插件管理"下可以看到Jenkins缺省安裝了CVS,Subversion,Maven和SSH,這些主要是版本控制的軟件的相應(yīng)插件,不過(guò)我們使用的是GitHub進(jìn)行版本控制,所以要在可選插件中選擇安裝Git plugin和GitHub plugin插件,安裝之后重新啟動(dòng)就可以看到新的插件已經(jīng)生效。3.環(huán)境配置
進(jìn)入"系統(tǒng)管理->系統(tǒng)設(shè)置"設(shè)置Jenkins的相關(guān)參數(shù)。主要是設(shè)置Git和GitHub插件的參數(shù),在Git下的Path to executable一欄添加本機(jī)的git.exe的路徑,在Git plugin下的添加本地Git的user.name和user.email的信息,在GitHub Web Hook下添加GitHub賬戶(hù)的相關(guān)信息。如果想要使用郵件的功能,需要在郵件通知的一欄添加SMTP服務(wù)器和郵箱的相關(guān)信息,添加后點(diǎn)擊Test的按鈕測(cè)試一下能否正常發(fā)送郵件,這一功能可以在后面的項(xiàng)目中使Email Notification功能得以正常使用。
4.構(gòu)建項(xiàng)目
點(diǎn)擊"新Job",輸入"任務(wù)名稱(chēng)",選擇"構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目",點(diǎn)擊"OK"。系統(tǒng)自動(dòng)進(jìn)入"任務(wù)配置"界面。5.配置構(gòu)建方法
在GitHub project中輸入git地址。 在"源碼管理->Git"下的Repository URL輸入Repository的Git地址(PS:可以選擇分支)。
在"構(gòu)建觸發(fā)器"中選擇"Build when a change is pushed to GitHub "和"Poll SCM ",這兩項(xiàng)的作用分別是當(dāng)GitHub有版本庫(kù)更新時(shí)觸發(fā)Jenkins進(jìn)行構(gòu)建和定期檢查版本庫(kù)是否有更新,如果有更新則觸發(fā)Jenkins進(jìn)行構(gòu)建。這里要注意Schedule語(yǔ)法,例如"*/2 * * * *"表示每隔2分鐘檢查一次。
點(diǎn)擊增加構(gòu)建步驟,選擇Execute Windows batch command,并輸入
"%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32",devenv.com是MSVC提供的命令行構(gòu)建工具,這里的"%VS10COMNTOOLS%..\IDE\devenv.com"為devenv.com的路徑,如果沒(méi)有配置響應(yīng)的環(huán)境變量,構(gòu)建的時(shí)候就會(huì)找不到路徑,所以可以用devenv.com的實(shí)際路徑代替。在"構(gòu)建后操作"中可以添加發(fā)送郵件的相關(guān)信息。
點(diǎn)擊保存,項(xiàng)目的配置就完成了,點(diǎn)擊立即構(gòu)建,Jenkin就會(huì)從github上將代碼clone下來(lái),這里我在github上存放了一個(gè)HelloWorld的vs項(xiàng)目,所以我的命令行為"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln" /Build "Debug|Win32",然后自動(dòng)編譯項(xiàng)目,如果構(gòu)建成功會(huì)是藍(lán)色標(biāo)記,如果構(gòu)建失敗會(huì)是紅色標(biāo)記。
構(gòu)建完成后可以在項(xiàng)目中看到項(xiàng)目構(gòu)建的具體信息,如工作區(qū)、變更集和每次構(gòu)建的控制臺(tái)輸出等。這就是一個(gè)基本的基于Jenkins和GitHub的持續(xù)集成環(huán)境的搭建。
添加回答
舉報(bào)