Jenkins - 持續集成環境搭建


1. Jenkins 概述

    Jenkins是一個開源的持續集成工具。持續集成主要功能是進行自動化的構建。自動化構建包括自動編譯、發布和測試,從而盡快地發現集成錯誤,讓團隊能夠更快的開發內聚的軟件。

 

2. Jenkins功能

主要功能:

  l   代碼庫(svn/git等)代碼發生變化后更新代碼至jenkins工作目錄

  l   代碼變化后啟動編譯或設置定時編譯

  l   輸出編譯結果,包括生成的目標文件

  l   郵件通知構建結果

 

3. Jenkins構建過程

    1. 向代碼庫提交代碼,代碼庫變化觸發構建

    2. 定時觸發構建,到定時的時間點觸發構建

    3. Jenkins更新至最新代碼

    4. 啟動編譯,失敗則停止構建。郵件反饋失敗信息

    5. 輸出編譯產物,WEB提供目標文件下載

image

 

4. Jenkins使用

4.1 Jenkins啟動

    1. 下載Jenkins軟件jenkins.war。

    2. Java環境配置

    3. Linux shell或windows cmd執行java -jar jenkins.war

    4. 指定端口啟動java -jar jenkins.war --httpPort=port

Tips:jenkins工作目錄默認在啟動用戶home目錄,jenkins操作權限與啟動用戶一致。

 

4.2 Jenkins web

    登錄web,首次訪問提示輸入administration password 在shell中啟動日志會提供,復制登錄后創建admin用戶。

    Jenkins搭建完成后訪問輸入用戶名和密碼登錄。

 

4.3 Jenkins界面

主界面說明:

image clip_image006

 

項目界面說明:

image

 

單次構建界面說明:

image

 

Jenkins使用主要是操作這三個頁面,可以完成以下內容:

    l 近期代碼構建結果查看

    l 手動立即啟動構建

    l 獲取構建結果目標文件

    l 查看單次構建的代碼變化

    l 獲取構建日志進行問題定位

 

5. Jenkins配置

5.1 系統配置

    主界面進入系統配置,主要可更新和下載當前的插件和添加新的jenkins用戶,系統設置內可配置jenkins工作目錄及郵件相關配置,以配置好可不做修改。

clip_image012

 

5.2 項目配置

5.2.1 創建項目

    項目配置需要熟悉當前項目的編譯環境,配置項目的jenkins環境即配置當前項目的編譯環境。

新建jenkins項目,選擇自由風格的軟件項目。已存在的項目可以在項目頁面點擊配置進入修改。

clip_image014

 

 

5.2.2 源碼配置

    在源碼管理配置代碼庫,提供svn的url以及有Read權限賬戶,所有設置均需要插件支持,如果找不到配置選項,可以查看是否安裝的對應功能的插件。

image

    代碼更新下載在jenkins的工作目錄下/home/Jenkins/.jenkins/workspace,其他構件操作均以工作目錄下代碼為基礎。

 

5.2.3 設置構建觸發器

選擇Poll SCM

* * * * *為每分鍾檢查一次SVN代碼,有更新則啟動構建。

* * * * *可以替換為具體時間

第一個參數代表的是分鍾 minute,取值 0~59;

第二個參數代表的是小時 hour,取值 0~23;

第三個參數代表的是天 day,取值 1~31;

第四個參數代表的是月 month,取值 1~12;

第五個參數代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

由此可以配置定時構建

如0 * * * * 表示的就是每個小時的第 0 分鍾執行一次構建。

clip_image018

 

 

5.2.4 構建配置

    構建配置即配置代碼的編譯過程,首先需要在jenkins機器上配置好編譯環境,先在機器上手動編譯,確認編譯環境配置完成,可以進行當前項目的代碼編譯后,再進行配置。

    在構建選項上可以選擇不同的工具進行構建,這些都需要插件的支持。因為項目是由命令行執行編譯命令進行構建的,所以選擇Execute shell執行命令進行構建,也可以配置其他構建工具環境進行構建。

image

 

 

5.2.5 輸出歸檔

    構建成功后需要將目標文件進行歸檔,否則在項目頁面是無法顯示和下載最后一次成功的構建結果選項。

    這步在構建后進行操作,在構建后操作中選擇archive the artifacts,填入需要歸檔的文件的正則表達式進行過濾。多個目錄文件表達式可使用“,”進行分割。

image

 

 

5.2.6 郵件通知

    在構建結束后,可以配置郵件,進行郵件通知。提示開發者構建結果,及時處理。

    在使用郵件通知時需要先配置

    主頁面進入系統管理的系統設置頁面,設置郵件通知,通知郵件將由這個郵箱發出,這個郵箱必須與jenkins location配置中的郵箱一致。

image

image

    配置項目中的郵件收件人

image

    可以使用“,”分割多個收件人。

 

6. Q&A

6.1. 忘記用戶密碼

    /home/jenkins/.jenkins/users目錄下有所有用戶信息,打開對應用戶的xml配置文件,找到passwordHash內容,修改為:

    #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS

    密碼將被設置為111111

 

6.2. 如何手動安裝插件

    把文件放在/home/jenkins/.jenkins/plugins目錄下,重啟jenkins即可。

 

6.3. 郵件配置測試一直不成功

    管理郵箱必須與jenkins location中郵箱一致,官網確認當前郵箱的SMTP服務器,端口以及是否使用SSL協議,最后查看當前郵箱是否開通IMAP/SMTP/POP/Exchange 服務。

 

6.4. Jenkins啟動失敗

    查看啟動端口是否被占用,查看是否當前的java環境版本不支持當前版本jenkins。

 

請無視打碼技術。 

 

轉載注明出處:http://www.cnblogs.com/binchen-china/

 

 我的博客即將搬運同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=zoaf0yj4v5of


免責聲明!

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



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