Jenkins是一款由Java開發(fā)的開源軟件醒目盾似,旨在提供一個開源易用的軟件平臺唬格,使持續(xù)集成成為可能,它的前身就是大名鼎鼎的Hundson颜说。
什么是持續(xù)集成呢购岗?以下概念摘自IBM團隊的定義:
隨著軟件復雜度的不斷提高,團隊開發(fā)人員之間如何更好地協(xié)調(diào)工作以確保軟件開發(fā)的質(zhì)量已經(jīng)慢慢成為開發(fā)過程中不可回避的問題门粪,持續(xù)集成正是針對這類問題的一種軟件開發(fā)實踐喊积。它倡導團隊開發(fā)成員必須經(jīng)常集成他們的工作,甚至每天都有可能發(fā)生多次集成玄妈。而每次集成都是通過自動化的構(gòu)建來驗證的乾吻,包括自動編譯、發(fā)布和測試拟蜻,從而盡快發(fā)現(xiàn)集成錯誤绎签,讓團隊能夠更快地開發(fā)內(nèi)聚的軟件。
持續(xù)集成的核心價值在于以下幾點:
1) 持續(xù)集成的任何一個環(huán)節(jié)都是自動完成的酝锅,無須太多的人工干預诡必,有利減少重復過程,以節(jié)省時間搔扁、費用和工作量爸舒。
2) 持續(xù)集成保障了每個時間點上團隊成員提交的代碼是能夠成功集成的,即在任何時間點都能第一時間發(fā)現(xiàn)軟件的繼承問題稿蹲,使任意時間發(fā)布可部署的軟件成為可能扭勉。
3) 持續(xù)集成還有利于軟件本身的發(fā)展趨勢,這點在需求不明確或者頻繁性變更的情景中尤其重要苛聘,持續(xù)集成的質(zhì)量能夠幫助團隊進行有效決策涂炎,同時建立團隊開發(fā)產(chǎn)品的信心忠聚。
使用Jenkins做持續(xù)集成,就不用每次都登陸上服務器上進行操作唱捣,只需要單擊“Build Now”按鈕两蟀,就可以自動從Git倉庫獲取代碼,然后遠程部署到目標服務器爷光,執(zhí)行一些安裝依賴包和測試的命令垫竞,最后啟動應用。
下面開始一步步創(chuàng)建一個項目的構(gòu)建環(huán)境蛀序。
?1. 配置服務器連接
Manage Jenkins -> Configure System
Publish over SSH(如果沒有欢瞪,就安裝此插件)
點擊add按鈕,增加SSH Server
如果已經(jīng)建立連接遣鼓,直接使用即可。
2. 新建項目
回到Jenkins首頁重贺,點擊“New Item”骑祟,開啟一個新項目,選擇“Freestyle project”气笙。
3. 進入項目的"configure"頁面
“Source Code Management“ 選項次企,選擇“Git”,填入git倉庫地址
單擊Add潜圃,輸入git的用戶名和密碼
在 Credentials下拉中選擇剛才關聯(lián)的賬號
因為測試環(huán)境從develop分支發(fā)布缸棵,因此輸入Brand Specifier
配置頁面向下滾動,在“Build”一欄處谭期,單擊下拉菜單堵第,選擇“Excute Shell”。構(gòu)建表示我們向生產(chǎn)服務器發(fā)布一個應用隧出,簡單來說踏志,就是把原來需要手動操作和要輸入的命令通過配置來自動執(zhí)行。大致流程如下:
* Jenkins從Git獲取最新代碼
* 將代碼打包通過SSH發(fā)送到遠程服務器上
* 刪除遠程服務器上代碼胀瞪,解壓縮新的代碼针余,并重啟服務
界面如圖所示:
shell代碼如下:
rm -f /var/jenkins_home/workspace/aiadmobi_operation_ui/aiadmobi_operation_ui.tar.gz #刪除舊的壓縮包
tar -zcvf /tmp/aiadmobi_ui.tar.gz -C /var/jenkins_home/workspace/aiadmobi_operation_ui/src/main/webapp/ui/dist . --exclude="*.git" #自動拉取的git的存儲目錄是workspace/aiadmobi_operation_ui
mv /tmp/aiadmobi_ui.tar.gz /var/jenkins_home/workspace/aiadmobi_ui/
jenkins會自動從git拉取代碼,因此只需要獲取代碼以后的處理腳本即可
需要把代碼包發(fā)送到遠程服務器上赏廓,這時需要選擇“Send files...”選項
選擇我們創(chuàng)建的遠程服務器涵紊,把剛剛打包的文件aiadmobi_ui.tar.gz填入,工作路徑就是workspace下的項目文件夾
shell代碼如下:
cd /home/noxer/software/tomcat/dsp/apache-tomcat-7.0.59/webapps/ROOT/ui/dist
rm -rf *
mv ../aiadmobi_operation_ui.tar.gz ./
tar -xvf aiadmobi_operation_ui.tar.gz ./
rm -rf aiadmobi_operation_ui.tar.gz
cd /home/noxer/software/tomcat/dsp/apache-tomcat-7.0.59/work/
rm -rf *
cd /home/noxer/software/tomcat/dsp/apache-tomcat-7.0.59/bin/
sh shutdown.sh #重啟tomcat服務
sh startup.sh
4. 進行構(gòu)建
配置完畢后幔摸,點擊“Build Now”進行構(gòu)建
至此就完成了簡單的發(fā)布到測試環(huán)境的自動構(gòu)建