3.1 Jenkins安裝 2
3.1.1 Jenkins下載 2
3.1.2 Jenkins 安裝 2
3.1.3 Jenkins 目錄結(jié)構(gòu) 3
3.2 Jenkins系統(tǒng)管理 3
3.2.1 系統(tǒng)配置 4
3.2.2 插件管理 4
3.3 創(chuàng)建一個任務 5
3.3.1 安裝MSBuild Plugin插件 5
3.3.2 創(chuàng)建新任務 6
3.4 自動測試 8
3.4.1 相關(guān)插件安裝 9
3.4.2 配置任務 9
3.5 代碼質(zhì)量管理 11
3.5.1 相關(guān)插件安裝 12
3.5.2 使用FxCop分析程序集 12
3.5.3 使用StyleCop審查代碼 13
3.5.4 展示分析結(jié)果 14
3.6 用戶權(quán)限管理 16
3.6.1 使用系統(tǒng)自帶的授權(quán)機制 16
3.6.2 Role-basedAuthorization Strategy授權(quán)機制 17
3.7 構(gòu)建通知 19
3.7.1 通過郵件通知 19
3.7.2 通過實時消息通知 20
-
Jenkins安裝
-
Jenkins下載
由于Jenkins是開源的,可以直接下載其源代碼自行編譯,也可以下載發(fā)布好的文件,下載地址為:http://mirrors./war/latest/jenkins.war
-
Jenkins 安裝
Jenkins是用Java語言開發(fā)的系統(tǒng),首先要確定服務器上已經(jīng)安裝JDK或者JRE。
安裝方式一
直接運行java –jar Jenkins.war,在瀏覽器中輸入 http://localhost:8080即可。
安裝方式二
安裝Tomcat。
添加環(huán)境變量JENKINS_HOME,該變量為jenkins系統(tǒng)的工作目錄,如下圖:

(注意:該目錄對于jenkins極為重要,系統(tǒng)所有相關(guān)的配置、數(shù)據(jù)文件等都存放于此,所以一定要確保該目錄有足夠的空間)。
修改Tomcat 程序conf/server.xml文件,在Host結(jié)點下添加<Context path="/jenkins" docBase="G:\WWWRoot\jenkins\jenkins.war" reloadable="true" />,其中path表示jenkins系統(tǒng)的訪問跨徑,docBase表示jenkins程序文件所在位置。
啟動Tomcat,輸入http://localhost:8080/jenkins打開系統(tǒng),如下圖,(如能正常打開系統(tǒng),表示系統(tǒng)安裝成功)。

-
Jenkins 目錄結(jié)構(gòu)
Jenkins 所有數(shù)據(jù)存放在JENKINS_HOME所設置的目錄下,如果沒設置此變量,數(shù)據(jù)將會保存在 我的文檔/.jenkins目錄下。目錄結(jié)構(gòu)如下:
JENKINS_HOME
+- config.xml (配置文件)
+- *.xml (其它配置文件)
+- userContent (用戶授權(quán)文件)
+- plugins (插件)
+- jobs
+- [JOBNAME] (存放所有的Job的文件)
+- config.xml (job 配置文件)
+- workspace (存放系統(tǒng)代碼)
由于Jenkins沒有數(shù)據(jù)庫存,所以備份、刪除、移動數(shù)據(jù)非常方便。備份是要備份JENKINS_HOME目錄即可,恢復時要先停止jenkins。對于移動或刪除jobs,只需要簡單地移動或刪除%JENKINS_HOEM%\jobs目錄。對于修改jobs的名字,只需要簡單地修改%JENKINS_HOEM%\jobs下對應job的文件夾的名字。對于不經(jīng)常使用的job,只需要對%JENKINS_HOEM%\jobs下對應的jobs的目錄zip或tar后存儲到其他的地方。
-
Jenkins系統(tǒng)管理
在使用系統(tǒng)之前,還需要對系統(tǒng)進行一些基本的配置,如下圖:

-
系統(tǒng)配置
系統(tǒng)配置是Jenkins配置中非常重要的一個頁面,如下圖。

在系統(tǒng)配置頁面,可以配置JDK、MSBuild、源代碼控制等。幾乎所有的插件安裝后有需要配置的都會在這里呈現(xiàn)。
-
插件管理
Jenkins是一個可擴展的系統(tǒng),其很多功能都利益于各式各樣的插件,現(xiàn)Jenkins中已有超過200個各種不同功能的插件。所以插件對于Jenkins是非常重要的。
Jenkins的插件安裝可離線安裝,也可在線安裝。打開插件管理頁面,如下圖:

在這里可輕松的管理插件。
注意:插件安裝完成后,一般需要重啟系統(tǒng),還需要到系統(tǒng)配置頁面對插件進行配置,插件才能起作用。
-
創(chuàng)建一個任務
-
安裝MSBuild Plugin插件
在創(chuàng)建一個任務之前,需要添加一些必須的插件。由于例子是C#寫的,首先需安裝MSBuild插件

安裝完MSBuild Plugin插件后,還需在系統(tǒng)配置里進行配置。進入系統(tǒng)配置目錄,找到剛安裝的插件

點擊MSBuild安裝,添加MSBuild的配置,如下圖,分別添加了.NET FrameWork 4.0 32位和64位MSBuild.exe,在創(chuàng)建任務選擇用MSBuild構(gòu)建時,將同時用32、64位的MSBuild.exe去編譯。

紅色框中是MSBuild.exe的路徑。
-
創(chuàng)建新任務
點擊新建Job,輸入任務名稱,如下圖,選擇構(gòu)建一個自由風格的軟件項目,點擊確定按鈕,進入Job詳細配置界面。


為了能完成一次基本的構(gòu)建,至少需要做如下設置,在源碼管理選項,選擇源代碼管理工具。

例子中選擇Git作為源代碼管理工具,還需安裝 Git Plugin和Git Client Plugin作為插件。系統(tǒng)自帶SVN插件,若用SVN做源代碼管理,則無需再去安裝插件。
選擇了代碼管理工具,還一關(guān)鍵的一步,添加構(gòu)建。

點擊增加構(gòu)建,選擇前面安裝的MSBuild,將構(gòu)建文件設置為項目文件,如下圖:

完成這些基本配置后,點擊保存按鈕,保存配置,返回任務界面,點擊立即構(gòu)建,Jenkins將會自動重源代碼服務獲取代碼,并編譯,并顯示構(gòu)建狀態(tài)。

紅色圖標表示構(gòu)建失敗,綠色圖標表示構(gòu)建成功??梢渣c擊控制臺輸出查看詳細的構(gòu)建信息。

-
自動測試
-
相關(guān)插件安裝
對于C#語言,在自動化測試中,可以用到如下插件:
-
Jenkins MSTestRunner plugin:系統(tǒng)使用MSTest來測試;
-
Jenkins NUnit plugin:系統(tǒng)使用NUit來測試;
-
JENKINS MSTest plugin:來發(fā)布MSTest的測試結(jié)果。
本例以MSTestRunner和MSTest plugin來作為例子來說明。首先到系統(tǒng)的插件管理界面安裝這兩個插件,如下圖

安裝完這兩個插件后,重啟Jenkins。打開系統(tǒng)配置界面,還需對MSTest進行配置。
紅色框是MSTest.exe的路徑位置,該工具為VS自帶工具。

-
配置任務
安裝完前面的插件后,通過配置,就可以讓Jenkins在構(gòu)建的時候自動運行測試用例。
打開任務的配置界面,在構(gòu)建項,選擇添加構(gòu)建,運行單元測試。

添加相關(guān)配置,測試文件為我們測試項目所生成的dll或者exe文件。測試結(jié)果文件為MSTest.exe所產(chǎn)生的測試結(jié)果文件,文件后綴為trx。注意:這里文件是相對路徑,相對于項目的路徑。

完成了這一步的配置,系統(tǒng)在構(gòu)建的時候,就能自動運行測試用例,但系統(tǒng)還不能將測試結(jié)果展示出來,要展示結(jié)果結(jié)果,還需做如下配置。
在任務配置的構(gòu)建后的操作里,選擇添加后構(gòu)建后的操作,如下圖。

選擇發(fā)布MSTest 測試結(jié)果報告。

在測試報告文件中添加前面配置MSTest.exe生的結(jié)果文件。
通過這些基本的配置,系統(tǒng)就能在構(gòu)建的時候運行測試用例,并將測試結(jié)果展示出來。
在每個任務的主頁,有測試結(jié)果的統(tǒng)計圖。

對于每次的測試,都有很詳細的信息展示。要查看某一次構(gòu)建的測試結(jié)果,可以點擊構(gòu)建歷史中的測試結(jié)果。


在測試結(jié)果頁面中,展示的測試結(jié)果的總體詳細,點擊某個測試名稱,還能顯示該測試的詳細信息。

-
代碼質(zhì)量管理
-
相關(guān)插件安裝
對于C#語言,代碼質(zhì)量管理可用到如下插件:
-
Jenkins FxCop Runner plugin:該插件就是在構(gòu)建的時候調(diào)用FxCop來分析代碼。
-
Static Analysis Utilities
-
Jenkins Violations plugin:該插件主要用來展示各種分析工具所產(chǎn)生的結(jié)果。
在安裝完Jenkins FxCop Runner plugin后,還需對其進行配置。點擊系統(tǒng)管理,系統(tǒng)設置,如下圖。

點擊FxCop安裝,設置FxCop程序的路徑。

-
使用FxCop分析程序集
FxCop是一個代碼分析工具,它依照微軟.NET框架的設計規(guī)范對托管代碼assembly進行檢查。它使用基于規(guī)則的引擎,來檢查出你代碼中不合規(guī)范的部分;也可以定制自己的規(guī)則加入到這個引擎。
為了能讓FxCop在構(gòu)建系統(tǒng)時運行,還需在任務中添加配置。在構(gòu)建項目,選擇增加構(gòu)建步驟,選擇FxCop exec。

添加配置信息。程序集名稱為我們需要分析的項目所生成的程序集。輸入xml文件為分析所產(chǎn)生的結(jié)果文件,為xml格式文件。

完成好這些配置后,系統(tǒng)在構(gòu)建的時候?qū){(diào)用配置的工具進行代碼分析。
-
使用StyleCop審查代碼
StyleCop的終極目標是讓所有人都能寫出優(yōu)雅和一致的代碼,因此這些代碼具有很高的可讀性。
StyleCop不是代碼格式化(代碼美化)工具,而是代碼規(guī)范檢查工具(Code Review 工具),它不僅僅檢查代碼格式,而是編碼規(guī)范,包括命名和注釋等。
StyleCop目的是幫助項目團隊執(zhí)行一系列常用的源代碼格式規(guī)范,這些規(guī)范是關(guān)于如何開發(fā)布局規(guī)整,易讀,易維護并且文檔良好的優(yōu)雅代碼的 。
StyleCop現(xiàn)在包含了 200 個左右的最佳實踐規(guī)則(best practice rules),這些規(guī)則與 Visual Studio 2005 和 Visual Studio 2008 中默認的代碼格式化規(guī)則是一致的。
StyleCop安裝
StyleCop是微軟的開源項目,可到http://stylecop./下載最新的安裝包。在安裝該工具的時候,盡量默認安裝,并且MSBuild files一定要選上,不然有可能導致不能正常使用。

為了能讓系統(tǒng)在構(gòu)建時自動運行該工具,需編輯一下項目文件,添加如下配置:

-
展示分析結(jié)果
在任務配置頁面,構(gòu)建后操作,增加構(gòu)建后操作,選擇Report Violations。

在Report Violations配置頁面,設置要展示的文件。我閃這里設置FxCop、StyleCop分析所產(chǎn)生的文件。值得注意的是,StyleCop所產(chǎn)生的文件是在obj\Debug目錄下。

完成這些配置后,重新構(gòu)建任務。任務構(gòu)建的主頁會多出配置的分析報告。

點擊某一項,還可以進入該項的詳細分析報表。

-
用戶權(quán)限管理
-
使用系統(tǒng)自帶的授權(quán)機制
默認地Jenkins不包含任何的安全檢查,任何人可以修改Jenkins設置、任務和啟動構(gòu)建等。顯然地在大規(guī)模的公司需要多個部門一起協(xié)調(diào)工作的時候,沒有任何安全檢查會帶來很多的問題。 我們可以通過以下2方面來增強Jenkins的安全:
在系統(tǒng)管理,Configure Global Security頁面中啟用權(quán)限管理。

首先要啟用安全,在安全域中選擇Jenkins專有用戶數(shù)據(jù)庫,并選擇允許用戶注冊。在授權(quán)策略選項中選擇項目矩陣授權(quán)策略。設置好這些基本屬性后,就是添加用戶。

輸入用戶名,點擊添加系統(tǒng)就添加了用戶,但需注意,在這里只添加了用戶名,添加的用戶還不能登錄,還需返回系統(tǒng)注冊頁面,注冊一個與此設置的相同用戶名的用戶。如下圖:

-
Role-basedAuthorization Strategy授權(quán)機制
打開系統(tǒng)管理,插件管理頁面,安裝Role-basedAuthorization Strategy插件。

進入系統(tǒng)管理,系統(tǒng)設置,如下圖所示:"安全域"選擇使用Jenkins專有用戶數(shù)據(jù)庫,可以在初始化的時候勾選"允許用戶注冊";"授權(quán)策略"選擇使用"Role-Based Strategy"。

配置完成后在"系統(tǒng)管理"下新增選項"Manage and Assign Roles"。點擊"管理用戶"新建賬戶后即可進行賬戶,群組的安全策略配置。

點擊Manage and Assign Roles,進入如下界面,頁面有添加角色,給角色授權(quán)功能。

點擊添加角色,進入角色管理頁面。在這里有兩種角色,一種是全局角色,一種是項目角色,一般用戶需授這兩種角色。

點擊Assing Roles,界面用戶授權(quán)界面。注意:這里添加用戶的方式與前面介紹的相同。

-
構(gòu)建通知
-
通過郵件通知
進行系統(tǒng)管理,系統(tǒng)設置頁面,設置郵件服務器。

配置完蛋郵件服務器后,進行任務配置頁面,配置郵件通知。

當完成一次構(gòu)建后,系統(tǒng)將發(fā)送詳細的構(gòu)建信息,如下圖。

-
通過實時消息通知
實時消息通知有兩種方式,一種是通過Jabber,另一種是通過IRC的方式通知。例子通過Jabber的方式來說明。
Jabber 是著名的Linux即時通訊服務服務器,它是一個自由開源軟件,能讓用戶自己架即時通訊服務器,可以在Internet上應用,也可以在局域網(wǎng)中應用。Jabber最有優(yōu)勢的就是其通信協(xié)議,可以和多種即時通訊對接。
安裝Jabber實時通訊服務器
到http://www. 下載Openfire和Spark。其中Openfire為服務器,Spark為客戶端。
安裝好Openfire服務器后,啟動相關(guān)服務,在其管理界面添加用戶。這里新建用戶jenkins作為Jenkins系統(tǒng)的賬戶,如下圖。

為了能上Jenkins能使用Jabber服務,還需安裝下圖所顯示的兩個插件。

安裝完這兩個插件后,進行系統(tǒng)管理,系統(tǒng)設置頁面,配置Jabber插件。

完成配置后,開發(fā)人員可通過Jabber客戶端與Jenkins系統(tǒng)交互。Jenkins每次構(gòu)建后,都將會給用戶發(fā)送消息,如下圖。

開發(fā)人員,還可以通過這個工具與Jenkins服務器交互,如下圖。

|