jenkins + GIt 搭建持續集成環境

jopen 8年前發布 | 19K 次閱讀 Git 持續集成 項目構建

持續集成通過自動化構建、自動化測試以及自動化部署加上較高的集成頻率保證了開發系統中的問題能迅速被發現和修復,降低了集成失敗的風險,使得系統在開發中始終保持在一個穩定健康的集成狀態。jenkins是目前廣泛應用的持續集成工具,本文記錄我使用jenkins+Git配置持續集成環境的整個流程以及踩到的坑( jenkins過程的坑往往不是在第一次配置,而是在配置結束后更改某些配置項的時候踩到 )。

總體流程如下:

tomcat8.0下載地址:http://tomcat.apache.org/

jenkins下載地址:http://jenkins-ci.org/

下載完畢后,將jenkins.war丟入tomcat/webapps目錄下。

默認情況下,jenkins的工作空間會放到C:\Users\Account\.jenkins目錄下, ,如過想要更改工作空間,我們需要在系統環境變量里面配置JENKINS_HOME變量,將該變量指向目標工作空間。這里需要注意的是,tomcat啟動情況下,jenkins不會去讀JENKINS_HOME變量,必須要重啟tomcat。 而重啟tomcat也是有坑的 ,如果tomcat是通過命令行執行tomcat/bin/startup.bat目錄啟動的,那么單單停掉tomcat沒用,必須要將前面提到的命令行一并關閉掉,這時重啟tomcat,jenkins才會使用JENKINS_HOME中配置的目錄作為工作空間。此外, 一旦更換工作空間,此前過于jenkins的所有配置都將作廢 。

我們的產品使用Git作為版本管理工具,而jenkins需要git插件來支持git,所以我們需要為jenkins添加git插件。

在Available tab頁中找到Git Plugin

點擊下方的Install without Restart安裝插件。

插件安裝完畢后,我們需要在jenkins中配置Git.exe的位置。

點擊保存,jenkins整體的配置可以告一段落,下面我們來創建和配置job。

點擊左側的New Item,選擇一個自由風格的job,點擊OK。

在源碼管理工具(Source Code Management)中選擇Git,添加Git倉庫、添加Git證書、選擇一個分支:

關于證書我們選擇,SSH形式:

這個key跟我們在gitHub中配置公有秘鑰的道理是一樣的,jenkins調用git命令去Git服務器上pull代碼,git服務器通過檢查公鑰私鑰來保證安全性。如果機器上沒有git的ssh key需要 自己動手生成一個

如果Git倉庫有子倉庫,我們需要對子倉庫進行配置,這里選中循環更新所有子倉庫:

持續集成的目的不是簡單的將源碼下載下來,而是通過持續集成進行單元測試、自動化測試、自動構建發布。所以在源碼下載完畢后需要執行的命令可以放到Buid部分:

這里我們使用bat命令:

cd %workspace%\client\buildScripts\
build.bat
cd "yourPath"\buildOutput
xcopy stem \\NAO\webapp /Y /E

上面命令的意思是:

進入buildScripts目錄,%workspace%是jenkins提供的環境變量,指向我們job的工作空間,強烈建議使用該環境變量。

執行build.bat命令,build.bat中調用其他命令執行build腳本。

進入buildOutput目錄

將buildOutput中的stem下所有內容拷貝到NAO機器的共享目錄中。

點擊保存,進入到我們剛剛創建的job的控制界面中,點擊Build Now,便可以開始我們的持續集成的旅途了。

點擊某一次具體的構建,我們可以查看日志輸出:

注意這里的構建并不檢查build.bat中的錯誤和輸出,換句話說如果build.bat失敗,本次構建過程不會失敗。解決方法是使用jenkins的Log Parser插件,同使用Git Plugin一樣,在插件管理中找 Log Parser插件,并添加。添加完畢后,配置jenkins中的Console Output Parsing

rule的具體規則語法可以使用正則表達式,具體可以參考Log Parser插件的文檔http://my.oschina.net/donhui/blog/382592

Parsing Rules File的配置同上文的配置工作目錄具有一樣的坑,如果要更新規則,首先要清除job中選中的規則,然后刪除此處配置的Parseing Rule,重啟tomcat。

添加完畢后,在job的配置頁的 Post-Build Actions部分選中Console Output parsing

然后進行如下配置:

這樣我們可以對buld.bat中的error進行捕獲,并且在某次構建過程的Parsed Console Output中進行查看

來自: http://www.cnblogs.com/dojo-lzz/p/5125619.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!