Jenkins是什么?
Jenkins 是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
主要用于:
持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目。
? ?監(jiān)控一些定時(shí)執(zhí)行的任務(wù)。
Jenkins擁有的特性包括:
易于安裝-只要把jenkins.war部署到servlet容器,不需要數(shù)據(jù)庫(kù)支持。
易于配置-所有配置都是通過(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è)試。
文件識(shí)別:Jenkins能夠跟蹤哪次構(gòu)建生成哪些jar,哪次構(gòu)建使用哪個(gè)版本的jar等。
插件支持:支持?jǐn)U展插件,你可以開(kāi)發(fā)適合自己團(tuán)隊(duì)使用的工具。
Jenkins的常用功能
Jenkins其實(shí)就是一個(gè)工具,這個(gè)工具的作用就是調(diào)用各種其他的工具來(lái)達(dá)成你的目的。
1、備份、遷移、恢復(fù)jenkins
首先找到JENKINS_HOME,因?yàn)镴enkins的所有的數(shù)據(jù)都是以文件的形式存放在JENKINS_HOME目錄中。不管是遷移還是備份,只需要操作JENKINS_HOME就行了。
遷移:建議將JENKINS_HOME打包后在拷貝,windows可以用zip,rar等,Linux有zip,tar等,然后將打包的文件解壓到新的JENKINS_HOME目錄就行了。
備份:如果是臨時(shí)備份,整個(gè)壓縮文件就行了。
恢復(fù):恢復(fù)的時(shí)候需要先停止jenkins。
2、升級(jí)Jenkins
Jenkins的開(kāi)發(fā)迭代非???,每周發(fā)布一個(gè)開(kāi)發(fā)版本,長(zhǎng)期支持版每半年更新一次(ps:大版本更新)。如此頻繁的更新,怎么升級(jí)呢?
war:下載新版的war文件,替換舊版本war文件。重啟即可。
二進(jìn)制:卸載舊版本,安裝新版本即可。
Jenkins程序下載地址:http://mirrors.jenkins-ci.org/
note:升級(jí)前,請(qǐng)測(cè)試該版本和你本地?cái)?shù)據(jù)的兼容性。如何測(cè)試:將JENKINS_HOME拷貝一份到新的機(jī)器,用新版的程序啟動(dòng)。測(cè)試對(duì)應(yīng)的插件和配置。
3、移動(dòng),刪除或修改jobs
對(duì)于移動(dòng)或刪除jobs,只需要簡(jiǎn)單地移動(dòng)或刪除%JENKINS_HOEM%\jobs目錄。
對(duì)于修改jobs的名字,只需要簡(jiǎn)單地修改%JENKINS_HOEM%\jobs下對(duì)應(yīng)job的文件夾的名字。
對(duì)于不經(jīng)常使用的job,只需要對(duì)%JENKINS_HOEM%\jobs下對(duì)應(yīng)的jobs的目錄zip或tar后存儲(chǔ)到其他的地方。
4、Jenkins 啟動(dòng)時(shí)的命令行參數(shù)
--httpPort=$HTTP_PORT,用來(lái)設(shè)置jenkins運(yùn)行時(shí)的web端口。
--httpsPort=$HTTP_PORT,表示使用https協(xié)議。
--httpListenAddress=$HTTP_HOST,用來(lái)指定jenkins監(jiān)聽(tīng)的ip范圍,默認(rèn)為所有的ip都可以訪問(wèn)此jenkins server。
5、修改jenkins的timezone
如果jenkins所在的server的timezone不同于用戶(hù)的timezone,這時(shí)候需要修改jenkins的timezone,需要在jenkins啟動(dòng)的時(shí)候增加下列參數(shù)-Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ
6、通過(guò)腳本啟動(dòng)jenkins
set JENKINS_HOME=C:\Documents and Settings\Administrator\.hudson
cd /d %JENKINS_HOME%
java -jar jenkins.war --httpPort=8080
保存文件名為startjenkins.bat
7、查看jenkins的系統(tǒng)信息
以在jenkins的管理頁(yè)面下的系統(tǒng)信息中,查看所有的jenkins的信息,例如jenkins的啟動(dòng)配置,所依賴(lài)的系統(tǒng)的環(huán)境變量,所安裝的plugins。
8、作為windows服務(wù)啟動(dòng)
1) 、Jenkins-系統(tǒng)管理,點(diǎn)擊“Install as Windows Service”
?
2)、點(diǎn)擊安裝
?
3)、安裝完成后,詢(xún)問(wèn)是否要停止jenkins用windows服務(wù)重新啟動(dòng),選擇yes.
?
此時(shí),在windows服務(wù)中可以看到一個(gè)名稱(chēng)為jenkins的服務(wù)名。
?
可以設(shè)置啟動(dòng)或停止。
4)、刪除windows服務(wù)方法
開(kāi)始——運(yùn)行——cmd.exe,然后輸入sc就可以看到了。使用辦法很簡(jiǎn)單:
sc delete “服務(wù)名” (如果服務(wù)名中間有空格,就需要前后加引號(hào))
?
9、Jenkins中執(zhí)行batch和Python(本人暫時(shí)未用到此功能,先記錄保留)
Jenkins的job-》build 支持Ant,maven,windows batch和Shell, 但是我們知道python,perl,ruby等腳本其實(shí)也是shell腳本,所以這里的Shell可以擴(kuò)展為python,perl,ruby等。如下圖:執(zhí)行windows batch 和python
?
10、介紹一些常用的Jenkins插件
插件下載地址:https://wiki.jenkins-ci.org/display/JENKINS/Plugins 或 http://updates.jenkins-ci.org/download/plugins/
perforce的label功能來(lái)對(duì)成功的build進(jìn)行l(wèi)abel
Dashboard View 用來(lái)自定義自己的主頁(yè)
Deploy Plugin插件支持將War/Jar部署到遠(yuǎn)程的應(yīng)用服務(wù)器上,例如Tomcat,JBoss,Glassfish。正在尋找或開(kāi)發(fā).NET web 應(yīng)用的自動(dòng)發(fā)布插件。
NUnit Plugin
JIRA Plugin
Bugzilla Plugin
Trac Plugin
Readmine Plugin
Static Code Analysis Plug-ins
Publish Over FTP Plugin這個(gè)插件可以將構(gòu)建的產(chǎn)物(例如:Jar)發(fā)布到FTP中去。
Publish Over SSH這個(gè)插件可以通過(guò)ssh連接其他Linux機(jī)器
JobConfigHistory Plugin 非常有用,可以查看job歷史配置信息sidebar links這個(gè)插件不錯(cuò),可以添加一些鏈接到j(luò)enkins上,比如把fitnesse的測(cè)試集鏈接添加到上面,方便訪問(wèn)。
11、Jenkins的svn插件無(wú)法獲取到最新的源代碼?
A:請(qǐng)檢查你的SVN服務(wù)器時(shí)間和Jenkins服務(wù)器時(shí)間是否同步。
jenkins的使用總結(jié)
jenkins,作為開(kāi)源世界的持續(xù)集成工具(CI),表現(xiàn)其實(shí)不錯(cuò)了。雖然不能與Atlassian的bamboo相比,別人是商業(yè)版本。
我使用的是它的WAR包版本,可以從jenkins 官網(wǎng)下載。個(gè)人建議在tomcat7.0.32版本以上運(yùn)行。
系統(tǒng)管理
主要是jenkins的管理后臺(tái)配置,里面有很多功能。如系統(tǒng)設(shè)置,全局安全設(shè)置,權(quán)限管理,插件管理。其實(shí)最開(kāi)始,是要安裝相關(guān)的插件,如SonarQube Plugin(代碼質(zhì)量),Maven(構(gòu)建),Subversion Plug-in(版本管理),Publish Over SSH(發(fā)布),SSH plugin(執(zhí)行命令),JUnit Plugin/TestNG Results Plugin(測(cè)試用例)。所有的這些插件,都是以插件的形式插入整個(gè)項(xiàng)目代碼的執(zhí)行過(guò)程。
系統(tǒng)設(shè)置
主要是安裝好插件之后,設(shè)置對(duì)應(yīng)的HOME,以MVN為例
?
sonarqube
?
以上只是簡(jiǎn)單舉例說(shuō)明。實(shí)際就是一些明細(xì)的參數(shù)配置。另外就是像jenkins的JOB配置項(xiàng)數(shù)據(jù),郵件通知等。
?
??
全局安全設(shè)置
主要是針對(duì)CI的安全進(jìn)行設(shè)置,如接入LDAP的賬號(hào)體系。
?
配置OK之后,登錄界面需要使用你的ldap里面的賬號(hào)進(jìn)行登錄。
新建JOB
基本配置:包括JOB的執(zhí)行次數(shù),參數(shù)化構(gòu)建等
?
源碼管理:你的代碼來(lái)源于哪個(gè)版本控制管理
?
構(gòu)建觸發(fā)器:定義你的自動(dòng)化構(gòu)建方式。一般是定時(shí)+版本更新觸發(fā)。
?
構(gòu)建環(huán)境:定義構(gòu)建之中的執(zhí)行事件或者是腳本
?
構(gòu)建:我們是通過(guò)MVN來(lái)進(jìn)行的,所以
?
構(gòu)建后:一般情況,代碼構(gòu)建成功之后,會(huì)跑對(duì)應(yīng)的TESTCASE。如果我們想明確知道通過(guò)率是多少,這里可以加上TESTNG的測(cè)試報(bào)告。
?
如果你還想看代碼的質(zhì)量,再加另外一個(gè)
?
這樣,從代碼的編寫(xiě),構(gòu)建,測(cè)試,發(fā)布,評(píng)測(cè)。jenkins幫助我們很好的串連起來(lái)了。
?
通過(guò)上面的圖,我們能看出CI所起的作用。
下面再貼一張jenkins生命周期圖
?
團(tuán)隊(duì)的小而美,需要的是標(biāo)準(zhǔn),規(guī)范,輸出,快速反饋,再迭代。
?
評(píng)論
查看更多