Jenkins-Git持續集成配置

1.Jenkins

Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。

(1)什麼是持續集成

  • 自動檢查源代碼
  • 自動編譯打包
  • 自動發佈
  • 自動測試

(2)爲什麼要持續集成

  • 節約成本
  • 減少人爲出錯概率
  • 儘早發現問題
  • 降低缺陷進入下一環節的機率

2.Jenkins+Git

和git工具進行集成,對源代碼進行靜態掃描

過程:

CI1 預編譯

觸發條件:提交PR後自動觸發,任何PR都會觸發—>git主動通知jenkins做自動編譯

PR自動編譯的命名規則:Gitkey+擴展名+PR_FOR_ALL

內容:單元測試,編譯

用途:merge代碼的參考依據,檢查待提交代碼是否編譯通過

CI2 主幹代碼有變動觸發

觸發條件:提交到master的PR合併後,自動觸發

內容:單元測試,編譯,源代碼靜態檢查

CI3 測試前置

觸發條件:在Master分支中,由測試人員和研發經理一起判斷是否提前轉測,再由測試人員手動觸發

內容:編譯,打包,部署測試環境

可以做到單個功能測試,即測試前置

CI4 迴歸測試

提交到Release/SIT的PR合併後,由測試人員檢查提交的數據庫和配置文件是否準備完成並手動觸發

內容:單元測試,編譯,打包,部署測試環境

3.預處理操作步驟:

①在jenkins中,選擇相應項目——New Item,輸入名字(命名規則同上)——構建一個自由風格的項目——點擊“OK”

②進入配置界面,【General】選擇相應的JDK版本——源碼管理:Git(要做的相應配置如下圖)——點擊“保存”——測試一下:點擊Jenkins左側欄的“立即構建”,構建完成後,點擊“工作空間”可以看到拉下來的代碼

③繼續對編譯做配置,點擊Jenkins左側欄的“配置”——【構建】點擊”增加構建步驟“(因爲是maven項目,增加maven構建插件),選擇Invoke top-level Maven targets,maven版本選擇maven-linux,Goals輸入“-U clean compile”(-U檢查是否有最新的包,clean刪除歷史構建,compile只做編譯不做打包)——點擊“保存”——點擊Jenkins左側欄的“立即構建”測試一下效果

④對自動觸發以及構建結果通知到Git做配置,點擊“配置”——【源碼管理】在Branches to build,去掉master分支(可以達到Git庫任意分支的代碼的PR都會觸發構建)——【構建觸發器】選擇Poll SCM,日程表置空——【構建後操作】點擊“增加構建後操作步驟”,選擇Notify Stash Instance(通知存儲實例),目的:將構建結果通知到Git——點擊“保存”

4.單元測試

  1. 在Jeninks創建一個單元測試的任務,【新建item】,命名規則同上,構建一個自由風格的項目,點擊“OK”
  2. JDK和Git庫配置同上
  3. 【構建】點擊“增加構建步驟”,選擇Invoke top-level Maven targets,maven版本選擇maven-linux,Goals輸入“-U clean test”(執行單元測試)——測試一下:點擊“立即構建”,構建完成後,點擊“工作空間”——target-surefire-reports裏面是單元測試的結果
  4. 爲了測試覆蓋率:【構建】點擊“增加構建步驟”,修改Goals輸入“-U clean test”爲“-U clean c obertura:c obertura -Dc obertura.report.format=xml”(後面命令要求輸出格式爲xml)——測試一下:點擊“立即構建”,構建完成後,點擊“工作空間”——target-site/c obertura-coverage.xml裏面是覆蓋率測試的結果
  5. 爲了展示測試結果,需要用到插件:【構建後操作】點擊“增加構建後操作步驟”,選擇Publish JUnit test result report,路徑 target/surefire/reports*.xml 和 Publish cobertura Coverage Report,路徑 **/target/site/c obertura-coverage.xml(從下面複製來的),點擊“保存”——測試一下:點擊“立即構建”

5.Sonar源代碼靜態檢測

無需配置(Jenkins默認配置好了),一提交到master分支(其他分支不會),就會觸發源代碼靜態檢查。

6.自動打包與部署

打包前先確定對哪個工程、哪個GIT庫打包,自動部署要知道部署到哪個服務器以及路徑。

打包:點擊Jenkins左側欄的“配置”——【構建】點擊”增加構建步驟“(因爲是maven項目,增加maven構建插件),選擇Invoke top-level Maven targets,maven版本選擇maven-linux,Goals輸入“-U clean package”。點擊“立即構建”即可以打包。

部署:先停止相關腳本,再啓動腳本(也可以用Secure Shell 或 xshell 操作)

自動部署的配置:jenkins中,配置【增加構建步驟】,選擇send files or execute commands over SSH——SSH Server中NAME默認選擇第一個SSH-SERVE-1——指定服務器IP即要部署包的服務器——指定工作空間,即服務器下的目錄——選擇高級,勾選Credentials,填寫用戶名和密碼——然後部署在Transfers下,Source files(war包路徑:target/jirareport.war)、Remove profix(去掉文件頭,輸入:target/)、Remote directory(要部署的目錄,比如webapps)、Exec commands中輸入腳本:停止腳本

cd ******/shutdown.sh

sleep 5(五秒鐘)

啓動腳本

cd ******/startup.sh

 

以上,即完成了自動打包、自動部署的配置。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章