Jenkins 持續集成安裝及使用簡介


博客地址:http://www.moonxy.com

一、前言

持續集成(Continuous integration,簡稱CI)指的是,頻繁地(一天多次)將代碼集成到主干。

持續集成的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。

Jenkins 是基於 Java 開發的一種持續集成工具,用於監控持續重復的工作,下載地址:https://bitnami.com/stack/jenkins/installer,提供了 Windows、Linux 和 OS X 平台的安裝包。最簡便的還是使用提供的 war 包直接啟動,下載地址:http://mirrors.jenkins-ci.org/,此時必須保證系統中已經安裝了 jdk,最好是 jdk1.5 以上。

二、初始化 Jenkins 插件和管理員用戶

下載好 jenkins.war 包之后,在 cmd 下切換到下載目錄,然后執行如下命令:

java -jar jenkins.war

啟動了自帶的 Jetty 服務器

生成隨機口令

這樣,jenkins 就開始啟動了,它的 war 包中自帶 Jetty 服務器,第一次啟動 Jenkins 時,出於安全考慮,Jenkins 會自動生成一個隨機的安裝口令。注意控制台輸出的口令,復制下來。在瀏覽器中輸入地址:

http://localhost:8080/

首次啟動 jenkins 時如果發現一直卡在啟動界面,提示:Jenkins正在啟動,請稍后...

你可以按 Ctrl + C 強制結束啟動,然后再次執行上面的命令,發現就會繼續啟動了,或者可以修改一下配置文件,因為你所在網絡可能被限制了,如下:

進入 jenkins 的工作目錄,默認是:C:\Users\Administrator\.jenkins

也可以自定義 jenkins 的工作目錄,設置 JENKINS_HOME 環境變量,啟動 jenkins.war 后將被解壓到 JENKINS_HOME 目錄下,同時所有 jenkins 的 plugins 和 配置文件等也將被寫入到 JENKINS_HOME 所設置的目錄下。

打開 hudson.model.UpdateCenter.xml,將 http://updates.jenkins-ci.org/update-center.json 替換成 http://mirror.xmission.com/jenkins/updates/update-center.json,還是不行的話找到 updates 目錄下的 default.json 把里面所有的谷歌地址改成百度的,即將 http://www.google.com/ 替換為 http://www.baidu.com/。

2.1 進入如下頁面,輸入上面出現的口令

啟動后第一次進入如下頁面

2.2 進入選擇安裝插件的頁面后,可以選擇安裝社區推薦的插件或自定義安裝,此處選擇前者

一般至少需要安裝如下幾個插件:

Git/Subversion、SSH、Publish Over SSH、Maven 等。

2.3 創建管理員用戶

填入賬戶信息后,進入完成頁面:

安裝完成。

三、配置 Jenkins 構建工具

用管理員賬號第一次登錄 Jenkins 后,需要在 "系統管理" -> "全局工具配置" 中,設置你要使用到的構建工具和 JDK 版本。

3.1 進入 jenkins 主界面

3.2 進入全局工具配置頁面

點擊 "系統管理" -> "全局工具配置"

進入后配置構建工具

3.3 配置 Maven

如果機器上已經安裝了 Maven,則在 Maven_HOME 輸入框中提供具體的安裝路徑。否則,你可以選擇需要的 maven 版本,讓 Jenkins 為你自動下載 maven。

3.4 配置 JDK

同理,如果機器上已經安裝了 JDK,則在 JAVA_HOME 輸入框中提供具體的安裝路徑。否則,你可以選擇需要的 JDK 版本,讓 Jenkins 為你自動下載 JDK。

3.5 配置 Git

如果之前沒有為 Jenkins 安裝 Git、Subversion(SVN)或 CVS 插件,可以在 "系統管理" -> "管理插件" 中安裝。

四、構建作業

構建作業是 Jenkins 構建過程的核心。

4.1 點擊創建一個新任務,進入創建項目類型選擇頁面

如果發現沒有 "構建一個maven項目" 這一項,則需要安裝 Maven Integration 插件,如下:

4.2 進入構建作業的詳細頁面

4.3 源碼管理

根據自己項目的實際情況選擇源碼管理的方式:

4.4 構建觸發器

其中有 5 個參數,分別表示:

MINUTE:Minutes within the hour(0-59)

HOUR:The hour of the day(0-23)

DOM:The day of the month(1-31)

MONTH:The month(1-12)

DOW:The day of the week(0-7)where 0 and 7 are sunday

常用配置:

0 * * * * 為每個小時執行一次

0 1 * * * 為沒天的凌晨1點執行一次,這種配置的設置,適合執行一些冒煙的測試用例

第一個參數:min,0-59

第二個參數:hour:0-23

第三個參數:day:0-31

第四個參數:month:1-12

第五個參數:week:0-7(0 和 7 代表 Sunday)

Jenkins 中 "Poll SCM" 和 "Build periodically"的區別

Poll SCM:定時檢查源碼變更(根據SCM軟件的版本號),如果有更新就checkout最新code下來,然后執行構建動作,配置如下:

*/5 * * * * (每5分鍾檢查一次源碼變化)

Build periodically:周期進行項目構建(它不care源碼是否發生變化),配置如下:

0 2 * * * (每天2:00 必須build一次源碼)

4.5 構建

在 "Build" 中,默認的項目根目錄的 Root POM,即 pom.xml。如果 pom.xml 不在根目錄下,就填入子目錄,例如:cloud/pom.xml。

如果源碼管理中選擇 "None",此處點 "高級..." 可以自定義工作空間中的項目地址,如下:

保存上面的構建作業:

五、構建

構建作業之后,就可以執行構建過程了。

5.1 執行構建的方式

 第一種:點擊任務名稱的右邊的小三角,然后點擊 "立即構建"

第二種:按照 "構建觸發器" 中設置的 "日程表"定時自動觸發構建

5.2 構建結果

第一列是 "上次構建狀態顯示",是一個圓形圖標,一般分為四種:

藍色:構建成功;

黃色:不確定,可能構建成功,但包含錯誤;

紅色:構建失敗;

灰色:項目從未構建過,或者被禁用;

如上顯示藍色,表示構建成功。

注意:手動觸發構建的時間與自動定時構建的時間互不影響。

5.3 查看控制台輸出

可以查看構建成功的控制台輸出:

控制台信息顯示將構建的 jar 包從項目的 target 目錄下歸檔到了 jenkins 指定的目錄下了

此目錄顯示按照不同的構建編號,構建成功的項目

這與該工程的構建歷史中的編號相對應

如果構建失敗,可以通過查看構建失敗的控制台輸出,來得到具體的出錯信息,便於調試

點擊后查看錯誤信息,如下:

 

第二列是 "編譯晴雨表",如下:

如果看到你項目變成陰雲或者下雨,說明你的項目穩定性不好,需要去查找原因,解決問題。

5.4 部署

如果要部署構建好的 war 包,可以在 Post Steps 中填上 shell 命令,直接用腳本部署。

另一種方式是創建另外一個構建項目,手動觸發部署。

無論用哪種方式,都是為了確保編譯、部署是通過持續集成服務器完成的,而不是某台開發機器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM