3.1 Jenkins安裝 2java
3.3.1 安裝MSBuild Plugin插件 5單元測試
3.6.2 Role-basedAuthorization Strategy受權機制 17
因爲Jenkins是開源的,能夠直接下載其源代碼自行編譯,也能夠下載發佈好的文件,下載地址爲:http://mirrors.jenkins-ci.org/war/latest/jenkins.war
Jenkins是用Java語言開發的系統,首先要肯定服務器上已經安裝JDK或者JRE。
安裝方式一
直接運行java –jar Jenkins.war,在瀏覽器中輸入 http://localhost:8080便可。
安裝方式二
安裝Tomcat。
添加環境變量JENKINS_HOME,該變量爲jenkins系統的工做目錄,以下圖:
(注意:該目錄對於jenkins極爲重要,系統全部相關的配置、數據文件等都存放於此,因此必定要確保該目錄有足夠的空間)。
修改Tomcat 程序conf/server.xml文件,在Host結點下添加<Context path="/jenkins" docBase="G:\WWWRoot\jenkins\jenkins.war" reloadable="true" />,其中path表示jenkins系統的訪問跨徑,docBase表示jenkins程序文件所在位置。
啓動Tomcat,輸入http://localhost:8080/jenkins打開系統,以下圖,(如能正常打開系統,表示系統安裝成功)。
Jenkins 全部數據存放在JENKINS_HOME所設置的目錄下,若是沒設置此變量,數據將會保存在 個人文檔/.jenkins目錄下。目錄結構以下:
JENKINS_HOME
+- config.xml (配置文件)
+- *.xml (其它配置文件)
+- userContent (用戶受權文件)
+- plugins (插件)
+- jobs
+- [JOBNAME] (存放全部的Job的文件)
+- config.xml (job 配置文件)
+- workspace (存放系統代碼)
因爲Jenkins沒有數據庫存,因此備份、刪除、移動數據很是方便。備份是要備份JENKINS_HOME目錄便可,恢復時要先中止jenkins。對於移動或刪除jobs,只須要簡單地移動或刪除%JENKINS_HOEM%\jobs目錄。對於修改jobs的名字,只須要簡單地修改%JENKINS_HOEM%\jobs下對應job的文件夾的名字。對於不常用的job,只須要對%JENKINS_HOEM%\jobs下對應的jobs的目錄zip或tar後存儲到其餘的地方。
在使用系統以前,還須要對系統進行一些基本的配置,以下圖:
系統配置是Jenkins配置中很是重要的一個頁面,以下圖。
在系統配置頁面,能夠配置JDK、MSBuild、源代碼控制等。幾乎全部的插件安裝後有須要配置的都會在這裏呈現。
Jenkins是一個可擴展的系統,其不少功能都利益於各式各樣的插件,現Jenkins中已有超過200個各類不一樣功能的插件。因此插件對於Jenkins是很是重要的。
Jenkins的插件安裝可離線安裝,也可在線安裝。打開插件管理頁面,以下圖:
在這裏可輕鬆的管理插件。
注意:插件安裝完成後,通常須要重啓系統,還須要到系統配置頁面對插件進行配置,插件才能起做用。
在建立一個任務以前,須要添加一些必須的插件。因爲例子是C#寫的,首先需安裝MSBuild插件
安裝完MSBuild Plugin插件後,還需在系統配置裏進行配置。進入系統配置目錄,找到剛安裝的插件
點擊MSBuild安裝,添加MSBuild的配置,以下圖,分別添加了.NET FrameWork 4.0 32位和64位MSBuild.exe,在建立任務選擇用MSBuild構建時,將同時用3二、64位的MSBuild.exe去編譯。
紅色框中是MSBuild.exe的路徑。
點擊新建Job,輸入任務名稱,以下圖,選擇構建一個自由風格的軟件項目,點擊肯定按鈕,進入Job詳細配置界面。
爲了能完成一次基本的構建,至少須要作以下設置,在源碼管理選項,選擇源代碼管理工具。
例子中選擇Git做爲源代碼管理工具,還需安裝 Git Plugin和Git Client Plugin做爲插件。系統自帶SVN插件,若用SVN作源代碼管理,則無需再去安裝插件。
選擇了代碼管理工具,還一關鍵的一步,添加構建。
點擊增長構建,選擇前面安裝的MSBuild,將構建文件設置爲項目文件,以下圖:
完成這些基本配置後,點擊保存按鈕,保存配置,返回任務界面,點擊當即構建,Jenkins將會自動重源代碼服務獲取代碼,並編譯,並顯示構建狀態。
紅色圖標表示構建失敗,綠色圖標表示構建成功。能夠點擊控制檯輸出查看詳細的構建信息。
對於C#語言,在自動化測試中,能夠用到以下插件:
本例以MSTestRunner和MSTest plugin來做爲例子來講明。首先到系統的插件管理界面安裝這兩個插件,以下圖
安裝完這兩個插件後,重啓Jenkins。打開系統配置界面,還需對MSTest進行配置。
紅色框是MSTest.exe的路徑位置,該工具爲VS自帶工具。
安裝完前面的插件後,經過配置,就可讓Jenkins在構建的時候自動運行測試用例。
打開任務的配置界面,在構建項,選擇添加構建,運行單元測試。
添加相關配置,測試文件爲咱們測試項目所生成的dll或者exe文件。測試結果文件爲MSTest.exe所產生的測試結果文件,文件後綴爲trx。注意:這裏文件是相對路徑,相對於項目的路徑。
完成了這一步的配置,系統在構建的時候,就能自動運行測試用例,但系統還不能將測試結果展現出來,要展現結果結果,還需作以下配置。
在任務配置的構建後的操做裏,選擇添加後構建後的操做,以下圖。
選擇發佈MSTest 測試結果報告。
在測試報告文件中添加前面配置MSTest.exe生的結果文件。
經過這些基本的配置,系統就能在構建的時候運行測試用例,並將測試結果展現出來。
在每一個任務的主頁,有測試結果的統計圖。
對於每次的測試,都有很詳細的信息展現。要查看某一次構建的測試結果,能夠點擊構建歷史中的測試結果。
在測試結果頁面中,展現的測試結果的整體詳細,點擊某個測試名稱,還能顯示該測試的詳細信息。
對於C#語言,代碼質量管理可用到以下插件:
在安裝完Jenkins FxCop Runner plugin後,還需對其進行配置。點擊系統管理,系統設置,以下圖。
點擊FxCop安裝,設置FxCop程序的路徑。
FxCop是一個代碼分析工具,它依照微軟.NET框架的設計規範對託管代碼assembly進行檢查。它使用基於規則的引擎,來檢查出你代碼中不合規範的部分;也能夠定製本身的規則加入到這個引擎。
爲了能讓FxCop在構建系統時運行,還需在任務中添加配置。在構建項目,選擇增長構建步驟,選擇FxCop exec。
添加配置信息。程序集名稱爲咱們須要分析的項目所生成的程序集。輸入xml文件爲分析所產生的結果文件,爲xml格式文件。
完成好這些配置後,系統在構建的時候將會調用配置的工具進行代碼分析。
StyleCop的終極目標是讓全部人都能寫出優雅和一致的代碼,所以這些代碼具備很高的可讀性。
StyleCop不是代碼格式化(代碼美化)工具,而是代碼規範檢查工具(Code Review 工具),它不只僅檢查代碼格式,而是編碼規範,包括命名和註釋等。
StyleCop目的是幫助項目團隊執行一系列經常使用的源代碼格式規範,這些規範是關於如何開發佈局規整,易讀,易維護而且文檔良好的優雅代碼的 。
StyleCop如今包含了 200 個左右的最佳實踐規則(best practice rules),這些規則與 Visual Studio 2005 和 Visual Studio 2008 中默認的代碼格式化規則是一致的。
StyleCop安裝
StyleCop是微軟的開源項目,可到http://stylecop.codeplex.com/下載最新的安裝包。在安裝該工具的時候,儘可能默認安裝,而且MSBuild files必定要選上,否則有可能致使不能正常使用。
爲了能讓系統在構建時自動運行該工具,需編輯一下項目文件,添加以下配置:
在任務配置頁面,構建後操做,增長構建後操做,選擇Report Violations。
在Report Violations配置頁面,設置要展現的文件。我閃這裏設置FxCop、StyleCop分析所產生的文件。值得注意的是,StyleCop所產生的文件是在obj\Debug目錄下。
完成這些配置後,從新構建任務。任務構建的主頁會多出配置的分析報告。
點擊某一項,還能夠進入該項的詳細分析報表。
默認地Jenkins不包含任何的安全檢查,任何人能夠修改Jenkins設置、任務和啓動構建等。顯然地在大規模的公司須要多個部門一塊兒協調工做的時候,沒有任何安全檢查會帶來不少的問題。 咱們能夠經過如下2方面來加強Jenkins的安全:
在系統管理,Configure Global Security頁面中啓用權限管理。
首先要啓用安全,在安全域中選擇Jenkins專有用戶數據庫,並選擇容許用戶註冊。在受權策略選項中選擇項目矩陣受權策略。設置好這些基本屬性後,就是添加用戶。
輸入用戶名,點擊添加系統就添加了用戶,但需注意,在這裏只添加了用戶名,添加的用戶還不能登陸,還需返回系統註冊頁面,註冊一個與此設置的相同用戶名的用戶。以下圖:
打開系統管理,插件管理頁面,安裝Role-basedAuthorization Strategy插件。
進入系統管理,系統設置,以下圖所示:"安全域"選擇使用Jenkins專有用戶數據庫,能夠在初始化的時候勾選"容許用戶註冊";"受權策略"選擇使用"Role-Based Strategy"。
配置完成後在"系統管理"下新增選項"Manage and Assign Roles"。點擊"管理用戶"新建帳戶後便可進行帳戶,羣組的安全策略配置。
點擊Manage and Assign Roles,進入以下界面,頁面有添加角色,給角色受權功能。
點擊添加角色,進入角色管理頁面。在這裏有兩種角色,一種是全局角色,一種是項目角色,通常用戶需授這兩種角色。
點擊Assing Roles,界面用戶受權界面。注意:這裏添加用戶的方式與前面介紹的相同。
進行系統管理,系統設置頁面,設置郵件服務器。
配置完蛋郵件服務器後,進行任務配置頁面,配置郵件通知。
當完成一次構建後,系統將發送詳細的構建信息,以下圖。
實時消息通知有兩種方式,一種是經過Jabber,另外一種是經過IRC的方式通知。例子經過Jabber的方式來講明。
Jabber 是著名的Linux即時通信服務服務器,它是一個自由開源軟件,能讓用戶本身架即時通信服務器,能夠在Internet上應用,也能夠在局域網中應用。Jabber最有優點的就是其通訊協議,能夠和多種即時通信對接。
安裝Jabber實時通信服務器
到http://www.igniterealtime.org 下載Openfire和Spark。其中Openfire爲服務器,Spark爲客戶端。
安裝好Openfire服務器後,啓動相關服務,在其管理界面添加用戶。這裏新建用戶jenkins做爲Jenkins系統的帳戶,以下圖。
爲了能上Jenkins能使用Jabber服務,還需安裝下圖所顯示的兩個插件。
安裝完這兩個插件後,進行系統管理,系統設置頁面,配置Jabber插件。
完成配置後,開發人員可經過Jabber客戶端與Jenkins系統交互。Jenkins每次構建後,都將會給用戶發送消息,以下圖。
開發人員,還能夠經過這個工具與Jenkins服務器交互,以下圖。