1. 程式人生 > >Jenkins學習筆記 ---Jenkins持續整合之入門篇

Jenkins學習筆記 ---Jenkins持續整合之入門篇

 

1.1  編寫目的

編寫本文件,旨在與大家交流經驗、分享成果。該文件主要說明了如何結合安裝配置Tomcat、JDK、Ant、Subversion等工具搭建基於Jenkins的持續整合環境。

編者按:文件涉及到Jenkins的安裝配置,但並未涵蓋Jenkins的所有功能範疇。

1.2  術語與縮略詞

術語和縮略語說明

術語及縮略詞

說明

CI

Continuous Integration,持續整合

Jenkins

用於CI的開源專案,持續整合工具,筆者所用jenkins1491.zip

JDK

Java開發必備工具包;

筆者所用JDK安裝包:jdk-6u25-windows-i586.exe

JRE

Java Runtime Environment,Java執行時環境

JAVA_HOME

D:\CI\Env\Java\jdk1.6

CLASSPATH

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

PATH

%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;%ANT_HOME%\bin;

ANT_HOME

D:\CI\Env\apache-ant-1.7.0

Tomcat

開源專案,Web伺服器,筆者所用apache-tomcat-6.0.26.zip

Tomcat_Home

D:\CI\Env\apache-tomcat-6.0.26

Jenkins工作目錄

D:\CI\Workspace

 

 

 

2      基於Jenkins的CI環境

2.1  搭建Jenkins環境

2.1.1  安裝目錄約定

在D盤建立CI目錄,其下包括Env、Workspace兩個目錄。

Env:請將Java、Ant、Tomcat、findbugs等工具都安裝在此目錄下;

Workspace:Jenkins工作目錄,比如從SVN獲取的程式碼等內容都存放在此目錄下。

 

 

筆者強烈建議按上圖所示目錄結構進行各類工具的安裝,在後期會給大家帶來很大的好處,比如環境變數的配置,Ant指令碼的簡單複用等等。

 

2.1.2  JDK安裝

       JDK的安裝過程跟普通的Windows程式安裝過程類似,只要不停的Next就可以啦,詳細的安裝步驟在此略過。

       參照“2.1.4 環境變數配置”配置後環境變數後,在Dos視窗下,輸入java-version並回車,如果出現下圖所示提示,說明JDK已經安裝配置成功了。

 

2.1.3  Ant安裝

       筆者使用的是免安裝版Ant(apache-ant-1.7.0.rar),只要解壓即可。

       參照“2.1.4 環境變數配置”配置後環境變數後,在Dos視窗下,輸入ant -version並回車,如果出現下面的提示,說明Ant已經安裝配置成功了。

 

2.1.4  環境變數配置

       在安裝完成JDK與Ant以後,還需要正確的配置環境變數才可以使用,您需要新增JAVA_HOME、CLASS_PATH以及ANT_HOME三個環境變數,修改PATH環境變數。在修改PATH環境變數時,請在已有的PATH變數內容後面附加。詳情請參閱章節“1.2術語與縮略詞”,如果您按筆者建議的目錄結構安裝與解壓,你只需要簡單複製相關內容即可。

       請點選“我的電腦—屬性—高階—環境變數”,以開啟環境變數配置視窗,如下圖所示。

 

2.1.5  安裝Tomcat

       筆者使用的是免安裝版apache-tomcat-6.0.26,簡單的壓縮檔案,只要解壓即可。

       Tomcat安裝或解壓完成後,在Tomcat的安裝路徑下找到:bin/startup.bat

       雙擊執行該檔案,如果彈出如下的Console視窗,則說明Tomcat已經可以正常啟動了。

 

       在你的瀏覽器位址列上鍵入:http://127.0.0.1:8080/

       按下回車,如果能夠看到如下頁面,則說明你的Tomcat已經安裝成功啦。

 

Tips:

1、如果Tomcat不能正常啟動,請檢查你的環境變數中是不是已經正確設定了[JAVA_HOME]。

2、如果啟動Tomcat發生了埠衝突提示,請關閉佔用埠的應用;或是修改Tomcat的配置檔案 [{tomcat_home}/conf/server.xml],按註釋的說明,修改相應埠。

2.1.6  安裝Jenkins

       Jenkins是以J2EE Web應用包的形式提供的。筆者所使用的檔案是jenkins1491.zip。請將該檔案重新命名為Jenkins.war(為了文件編寫方便)。

       請將Jenkins.war拷貝至tomcat_home的webapps目錄下:

       {tomcat_home}/webapps

       Tomcat會自動部署Jenkins(如果遇到部署異常,嘗試重啟tomcat),如下圖所示:

 

顯示Jenkins is fully up and running則jenkins環境已經啟動完成。

       在瀏覽器位址列輸入:http://本地IP地址:8080/Jenkins

       按下回車,如果能夠出現如下圖所示頁面,說明你的Jenkins安裝成功了。

 

2.2  配置Jenkins

這一節開始我們來了解Jenkins基本環境的配置。

       在Jenkins首頁,左側選單欄有四個功能選單【新Job】、【檢視使用者】、【任務歷史】、【系統管理】。

點選【系統管理】,進入系統管理頁面,如下圖所示:

 

       在上圖所示系統管理頁面中,我們主要關心的是【系統設定】項,請點選【系統設定】連結,進入系統設定頁面,找到如下圖所示配置內容:

 

       在上圖中,單擊【新增JDK】:

 

       取消對【自動安裝】選項的選擇,出現如下內容,在其中填寫完成【別名】、【JAVA_HOME】即完成了對JDK的配置。

 

       【Ant】的配置跟【JDK】類似,在此不再贅述,配置完成後的頁面,請參照下圖。

 

       對於【Subversion】和【Jenkins URL】的配置請參見下圖,需要說明的是,在配置【Jenkins URL】的時候,請填寫您的Jenkins伺服器的IP地址。

 

 

       點選頁面最下方的【Save】按鈕,儲存即可。

       現在,我們已經完成Jenkins環境的基本配置了。

2.3  Jenkins外掛安裝

Jenkins基礎環境安裝完成了,接下來我們介紹如何安裝Jenkins外掛。

目前,筆者主要用到了如下外掛:

外掛名稱

版本

說明

Publish Over SSH

1.9

用於上傳發布包的外掛。

Static Analysis Utilities

1.48

用於輔助分析構建結果的外掛。

FindBugs Plugin

4.45

用於自動構建時自動按規則檢查程式碼的外掛。

JaCoCo Plugin

1.0.9

用於自動測試程式碼覆蓋率的外掛。

Tagging Plugin Subversion

1.16

用於SVN打標籤時使用的外掛。

Build PipelinePlugin

1.3.3

Job級聯展示外掛。

       有需要的同事,可以向筆者獲取已經下載好的外掛。

2.3.1  本地上傳安裝外掛

在Jenkins首頁,依次點選【系統管理】、【管理外掛】,如果在【已安裝】Tab也沒有找到需要的外掛,那我們需要安裝它。如下圖:

 

在【高階】頁面中找到“上傳外掛”部分,選擇【瀏覽】,找到本地.jpi檔案點選【上傳】即可。

記得上傳完成所有需要的外掛後要重啟Tomcat才會生效哦!

 

 

好了,到這裡我們已經基本完成了jenkins環境的安裝。如果有問題再回過頭看看相應的章節,是否有配置錯誤的地方,好好檢查下吧!

2.4  Jenkins許可權管理

Jenkins基於角色的使用者管理就要藉助外掛“Role-basedAuthorization Strategy”,該外掛的安裝可以採用線上安裝或者下載之後本地安裝,安裝的過程都很簡單快捷,切記外掛安裝之後要重啟Jenkins服務。

2.4.1  啟用安全策略

要想使用Jenkins的許可權管理功能,通常要遵循如下幾個步驟:

一:首先要在“系統設定”裡面的勾選“啟用安全”選項。如下圖所示:

 

二:註冊“admin”管理員賬號,註冊“admin”賬號之後Jenkins會預設設定為管理員許可權。註冊其他賬號是不會預設分配許可權的。

 

三:安裝“Role-BasedStrategy”外掛並且啟用為當前的“授全策略”。

 

四:以上幾步配置完成之後,就會在“系統管理”裡面出現一個新的選項“Manage and Assign Roles”。、

 

2.4.2  許可權配置

2.4.2.1        角色分配許可權

角色管理分兩類,一類是“Global roles”基於全域性的角色設定,另一類是“Project roles”基於專案的角色設定。

一:“Global roles”通常用來設定 “系統管理員”,“任務的建立者”,“anonymous”等的全域性性角色,諸如“Overall”,“Slave”等許可權的設定。

二:“Project roles”通常是用來設定某個專案針對某些人員的區域性性角色,諸如“Job”,“Run”等許可權的設定。

三:值得注意的是“Global roles”會覆蓋“Project roles”具有相配置項的許可權。

四:“Project roles”的“Pattern”屬性是採用後置萬用字元的方式來配置的,是嚴格區分大小寫的。比如下圖“testerA”角色就是應用與專案名稱為“New”開始的專案。

 

2.4.2.2        使用者分配角色

一:使用者分配角色可以同時分配“Global roles”和“Project roles”,如下圖所示:

 

二:即使用者“gavin”有與角色“testerA”和“testerB”所對應的專案許可權,而使用者“leq”就只具有與角色“testerB”所對應的專案許可權,如下圖所示:

 

3      附錄

       暫無。