天天看點

Jenkins 使用學習筆記

https://www.cnblogs.com/tester-l/p/6018105.html

  1. Jenkins 安裝

    Jenkins是用Java語言開發的系統,首先要确定伺服器上已經安裝JDK或者JRE。

    安裝方式一

    直接運作java –jar Jenkins.war,在浏覽器中輸入 http://localhost:8080即可。

    安裝方式二

    安裝Tomcat。

    添加環境變量JENKINS_HOME,該變量為jenkins系統的工作目錄,如下圖:

    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 使用學習筆記
  2. 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後存儲到其他的地方。

  3. Jenkins系統管理

    在使用系統之前,還需要對系統進行一些基本的配置,如下圖:
    Jenkins 使用學習筆記
  4. 系統配置

    系統配置是Jenkins配置中非常重要的一個頁面,如下圖。
    Jenkins 使用學習筆記
    在系統配置頁面,可以配置JDK、MSBuild、源代碼控制等。幾乎所有的插件安裝後有需要配置的都會在這裡呈現。
  5. 插件管理

    Jenkins是一個可擴充的系統,其很多功能都利益于各式各樣的插件,現Jenkins中已有超過200個各種不同功能的插件。是以插件對于Jenkins是非常重要的。

    Jenkins的插件安裝可離線安裝,也可線上安裝。打開插件管理頁面,如下圖:

    Jenkins 使用學習筆記

    在這裡可輕松的管理插件。

    注意:插件安裝完成後,一般需要重新開機系統,還需要到系統配置頁面對插件進行配置,插件才能起作用。

  6. 建立一個任務

  7. 安裝MSBuild Plugin插件

    在建立一個任務之前,需要添加一些必須的插件。由于例子是C#寫的,首先需安裝MSBuild插件
    Jenkins 使用學習筆記
    安裝完MSBuild Plugin插件後,還需在系統配置裡進行配置。進入系統配置目錄,找到剛安裝的插件
    Jenkins 使用學習筆記
    點選MSBuild安裝,添加MSBuild的配置,如下圖,分别添加了.NET FrameWork 4.0 32位和64位MSBuild.exe,在建立任務選擇用MSBuild建構時,将同時用32、64位的MSBuild.exe去編譯。
    Jenkins 使用學習筆記
    紅色框中是MSBuild.exe的路徑。
  8. 建立新任務

    點選建立Job,輸入任務名稱,如下圖,選擇建構一個自由風格的軟體項目,點選确定按鈕,進入Job詳細配置界面。
    Jenkins 使用學習筆記
    Jenkins 使用學習筆記
    為了能完成一次基本的建構,至少需要做如下設定,在源碼管理選項,選擇源代碼管理工具。
    Jenkins 使用學習筆記

    例子中選擇Git作為源代碼管理工具,還需安裝 Git Plugin和Git Client Plugin作為插件。系統自帶SVN插件,若用SVN做源代碼管理,則無需再去安裝插件。

    選擇了代碼管理工具,還一關鍵的一步,添加建構。

    Jenkins 使用學習筆記
    點選增加建構,選擇前面安裝的MSBuild,将建構檔案設定為項目檔案,如下圖:
    Jenkins 使用學習筆記
    完成這些基本配置後,點選儲存按鈕,儲存配置,傳回任務界面,點選立即建構,Jenkins将會自動重源代碼服務擷取代碼,并編譯,并顯示建構狀态。
    Jenkins 使用學習筆記
    紅色圖示表示建構失敗,綠色圖示表示建構成功。可以點選控制台輸出檢視詳細的建構資訊。
    Jenkins 使用學習筆記
  9. 自動測試

  10. 相關插件安裝

    對于C#語言,在自動化測試中,可以用到如下插件:
  • Jenkins MSTestRunner plugin:系統使用MSTest來測試;
  • Jenkins NUnit plugin:系統使用NUit來測試;
  • JENKINS MSTest plugin:來釋出MSTest的測試結果。

本例以MSTestRunner和MSTest plugin來作為例子來說明。首先到系統的插件管理界面安裝這兩個插件,如下圖

Jenkins 使用學習筆記

安裝完這兩個插件後,重新開機Jenkins。打開系統配置界面,還需對MSTest進行配置。

紅色框是MSTest.exe的路徑位置,該工具為VS自帶工具。

Jenkins 使用學習筆記
  1. 配置任務

    安裝完前面的插件後,通過配置,就可以讓Jenkins在建構的時候自動運作測試用例。

    打開任務的配置界面,在建構項,選擇添加建構,運作單元測試。

    Jenkins 使用學習筆記
    添加相關配置,測試檔案為我們測試項目所生成的dll或者exe檔案。測試結果檔案為MSTest.exe所産生的測試結果檔案,檔案字尾為trx。注意:這裡檔案是相對路徑,相對于項目的路徑。
    Jenkins 使用學習筆記

    完成了這一步的配置,系統在建構的時候,就能自動運作測試用例,但系統還不能将測試結果展示出來,要展示結果結果,還需做如下配置。

    在任務配置的建構後的操作裡,選擇添加後建構後的操作,如下圖。

    Jenkins 使用學習筆記
    選擇釋出MSTest 測試結果報告。
    Jenkins 使用學習筆記

    在測試報告檔案中添加前面配置MSTest.exe生的結果檔案。

    通過這些基本的配置,系統就能在建構的時候運作測試用例,并将測試結果展示出來。

    在每個任務的首頁,有測試結果的統計圖。

    Jenkins 使用學習筆記
    對于每次的測試,都有很詳細的資訊展示。要檢視某一次建構的測試結果,可以點選建構曆史中的測試結果。
    Jenkins 使用學習筆記
    Jenkins 使用學習筆記
    在測試結果頁面中,展示的測試結果的總體詳細,點選某個測試名稱,還能顯示該測試的詳細資訊。
    Jenkins 使用學習筆記
  2. 代碼品質管理

  3. 相關插件安裝

    對于C#語言,代碼品質管理可用到如下插件:
  • Jenkins FxCop Runner plugin:該插件就是在建構的時候調用FxCop來分析代碼。
  • Static Analysis Utilities
  • Jenkins Violations plugin:該插件主要用來展示各種分析工具所産生的結果。

在安裝完Jenkins FxCop Runner plugin後,還需對其進行配置。點選系統管理,系統設定,如下圖。

Jenkins 使用學習筆記

點選FxCop安裝,設定FxCop程式的路徑。

Jenkins 使用學習筆記
  1. 使用FxCop分析程式集

    FxCop是一個代碼分析工具,它依照微軟.NET架構的設計規範對托管代碼assembly進行檢查。它使用基于規則的引擎,來檢查出你代碼中不合規範的部分;也可以定制自己的規則加入到這個引擎。

    為了能讓FxCop在建構系統時運作,還需在任務中添加配置。在建構項目,選擇增加建構步驟,選擇FxCop exec。

    Jenkins 使用學習筆記
    添加配置資訊。程式集名稱為我們需要分析的項目所生成的程式集。輸入xml檔案為分析所産生的結果檔案,為xml格式檔案。
    Jenkins 使用學習筆記
    完成好這些配置後,系統在建構的時候将會調用配置的工具進行代碼分析。
  2. 使用StyleCop審查代碼

    StyleCop的終極目标是讓所有人都能寫出優雅和一緻的代碼,是以這些代碼具有很高的可讀性。

    StyleCop不是代碼格式化(代碼美化)工具,而是代碼規範檢查工具(Code Review 工具),它不僅僅檢查代碼格式,而是編碼規範,包括命名和注釋等。

    StyleCop目的是幫助項目團隊執行一系列常用的源代碼格式規範,這些規範是關于如何開釋出局規整,易讀,易維護并且文檔良好的優雅代碼的 。

    StyleCop現在包含了 200 個左右的最佳實踐規則(best practice rules),這些規則與 Visual Studio 2005 和 Visual Studio 2008 中預設的代碼格式化規則是一緻的。

    StyleCop安裝

    StyleCop是微軟的開源項目,可到http://stylecop.codeplex.com/下載下傳最新的安裝包。在安裝該工具的時候,盡量預設安裝,并且MSBuild files一定要選上,不然有可能導緻不能正常使用。

    Jenkins 使用學習筆記
    為了能讓系統在建構時自動運作該工具,需編輯一下項目檔案,添加如下配置:
    Jenkins 使用學習筆記
  3. 展示分析結果

    在任務配置頁面,建構後操作,增加建構後操作,選擇Report Violations。
    Jenkins 使用學習筆記
    在Report Violations配置頁面,設定要展示的檔案。我閃這裡設定FxCop、StyleCop分析所産生的檔案。值得注意的是,StyleCop所産生的檔案是在obj\Debug目錄下。
    Jenkins 使用學習筆記
    完成這些配置後,重新建構任務。任務建構的首頁會多出配置的分析報告。
    Jenkins 使用學習筆記
    點選某一項,還可以進入該項的詳細分析報表。
    Jenkins 使用學習筆記
  4. 使用者權限管理

  5. 使用系統自帶的授權機制

    預設地Jenkins不包含任何的安全檢查,任何人可以修改Jenkins設定、任務和啟動建構等。顯然地在大規模的公司需要多個部門一起協調工作的時候,沒有任何安全檢查會帶來很多的問題。 我們可以通過以下2方面來增強Jenkins的安全:
  • Security Realm,用來決定使用者名和密碼,且指定使用者屬于哪個組;
  • Authorization Strategy,用來決定使用者對那些資源有通路權限;

在系統管理,Configure Global Security頁面中啟用權限管理。

Jenkins 使用學習筆記

首先要啟用安全,在安全域中選擇Jenkins專有使用者資料庫,并選擇允許使用者注冊。在授權政策選項中選擇項目矩陣授權政策。設定好這些基本屬性後,就是添加使用者。

Jenkins 使用學習筆記

輸入使用者名,點選添加系統就添加了使用者,但需注意,在這裡隻添加了使用者名,添加的使用者還不能登入,還需傳回系統注冊頁面,注冊一個與此設定的相同使用者名的使用者。如下圖:

Jenkins 使用學習筆記
  1. Role-basedAuthorization Strategy授權機制

    打開系統管理,插件管理頁面,安裝Role-basedAuthorization Strategy插件。
    Jenkins 使用學習筆記
    進入系統管理,系統設定,如下圖所示:"安全域"選擇使用Jenkins專有使用者資料庫,可以在初始化的時候勾選"允許使用者注冊";"授權政策"選擇使用"Role-Based Strategy"。
    Jenkins 使用學習筆記
    配置完成後在"系統管理"下新增選項"Manage and Assign Roles"。點選"管理使用者"建立賬戶後即可進行賬戶,群組的安全政策配置。
    Jenkins 使用學習筆記
    點選Manage and Assign Roles,進入如下界面,頁面有添加角色,給角色授權功能。
    Jenkins 使用學習筆記
    點選添加角色,進入角色管理頁面。在這裡有兩種角色,一種是全局角色,一種是項目角色,一般使用者需授這兩種角色。
    Jenkins 使用學習筆記
    點選Assing Roles,界面使用者授權界面。注意:這裡添加使用者的方式與前面介紹的相同。
    Jenkins 使用學習筆記
  2. 建構通知

  3. 通過郵件通知

    進行系統管理,系統設定頁面,設定郵件伺服器。
    Jenkins 使用學習筆記
    配置完蛋郵件伺服器後,進行任務配置頁面,配置郵件通知。
    Jenkins 使用學習筆記
    當完成一次建構後,系統将發送詳細的建構資訊,如下圖。
    Jenkins 使用學習筆記
  4. 通過實時消息通知

    實時消息通知有兩種方式,一種是通過Jabber,另一種是通過IRC的方式通知。例子通過Jabber的方式來說明。

    Jabber 是著名的Linux即時通訊服務伺服器,它是一個自由開源軟體,能讓使用者自己架即時通訊伺服器,可以在Internet上應用,也可以在區域網路中應用。Jabber最有優勢的就是其通信協定,可以和多種即時通訊對接。

    安裝Jabber實時通訊伺服器

    到http://www.igniterealtime.org 下載下傳Openfire和Spark。其中Openfire為伺服器,Spark為用戶端。

    安裝好Openfire伺服器後,啟動相關服務,在其管理界面添加使用者。這裡建立使用者jenkins作為Jenkins系統的賬戶,如下圖。

    Jenkins 使用學習筆記
    為了能上Jenkins能使用Jabber服務,還需安裝下圖所顯示的兩個插件。
    Jenkins 使用學習筆記
    安裝完這兩個插件後,進行系統管理,系統設定頁面,配置Jabber插件。
    Jenkins 使用學習筆記
    完成配置後,開發人員可通過Jabber用戶端與Jenkins系統互動。Jenkins每次建構後,都将會給使用者發送消息,如下圖。
    Jenkins 使用學習筆記
    開發人員,還可以通過這個工具與Jenkins伺服器互動,如下圖。
    Jenkins 使用學習筆記