jenkins + 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中進行檢視
相關文章
- 前端er,Jenkins持續化整合環境搭建前端Jenkins
- 基於Jenkins快速搭建持續整合環境Jenkins
- linux環境下搭建Jenkins持續整合(Jenkins+git+shell+maven+tomact)LinuxJenkinsGitMavenMac
- 利用Jenkins+Gitlab搭建持續整合(CI)環境JenkinsGitlab
- Jenkins+Maven+SVN快速搭建持續整合環境(轉)JenkinsMaven
- 在CentOS7上搭建Jenkins+Maven+Git持續整合環境的方法CentOSJenkinsMavenGit
- Jenkins+Svn+Docker搭建持續整合環境 自動部署JenkinsDocker
- Jenkins + git實現持續整合JenkinsGit
- 基於CentOS、docker搭建jenkins內網前端可持續整合環境CentOSDockerJenkins內網前端
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持續整合環境(一)MavenJenkinsTomcat
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持續整合環境(二)MavenJenkinsTomcat
- Linux下搭建Jenkins持續整合LinuxJenkins
- Jenkins持續部署-Windows環境持續部署探究1JenkinsWindows
- Jenkins持續整合Jenkins
- Docker 實戰(2)- 配置 Jenkins 容器上的持續整合環境DockerJenkins
- Jenkins持續整合配置Jenkins
- [原創]CI持續整合系統環境---部署Jenkins完整記錄Jenkins
- 基於Jenkins+Git+Docker的持續整合(上)JenkinsGitDocker
- 基於Jenkins+Git+Docker的持續整合(下)JenkinsGitDocker
- 【K8S】基於Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續整合交付環境(環境搭建篇)K8SDockerGitlabJenkins
- CI持續整合系統環境--Gitlab+Gerrit+Jenkins完整對接GitlabJenkins
- jenkins+docker 持續整合JenkinsDocker
- 持續整合 Jenkins 簡介Jenkins
- Jenkins 持續整合使用教程Jenkins
- Jenkins+Maven+Git搭建持續整合和自動化部署的配置手記(1)JenkinsMavenGit
- 基於jenkins搭建一個持續整合伺服器Jenkins伺服器
- 「Jenkins+Git+Maven+Shell+Tomcat持續整合」經典教程JenkinsGitMavenTomcat
- SpringBoot+Docker+Git+Jenkins實現簡易的持續整合和持續部署Spring BootDockerGitJenkins
- 持續整合Jenkins+GitlabJenkinsGitlab
- Jenkins & Docker 持續整合實踐JenkinsDocker
- [Jenkins]IOS持續整合外掛JenkinsiOS
- Jenkins教程:使用Jenkins進行持續整合Jenkins
- [原創]CI持續整合系統環境--Gitlab+Gerrit+Jenkins完整對接GitlabJenkins
- 在Ubuntu上安裝Drone持續整合環境Ubuntu
- 搭建持續整合介面測試平臺(Jenkins+Ant+Jmeter)JenkinsJMeter
- 三萬字無坑搭建基於Docker+K8S+GitLab/SVN+Jenkins+Harbor持續整合交付環境DockerK8SGitlabJenkins
- Jenkens+Docker+Git 持續整合DockerGit
- Jenkins搭建持續打包平臺Jenkins