簡單介紹Jenkins&持續集成

1.定義

持續集成(Continuous integration),簡稱CI。

隨着軟件項目複雜度的增加,就會對集成和確保軟件組件能夠在一起工作提出了更多的要求-要早集成、常集成。

CI不是一項軟件開發實踐,而是多項軟件開發實踐的集合。

 

2.持續繼承與敏捷編程

在敏捷領域中,測試驅動TDD和持續集成CI被稱爲敏捷編程XP的兩大基石,於是乎,很多人的概念裏就是持續集成是爲了實現敏捷編程的。

這是一個錯誤的認識。實際上,早於敏捷編程概念的提出,持續集成作爲一個best practice就已經被很多公司採用了,只不過作爲一個概念,

則是由Martin大叔爲了推進敏捷所倡導並由此風靡起來。持續集成本身只是一種practice,並不被什麼開發模型所限制,在任何一種開發模型中都可以採用,也可以運行得非常理想。

 

3.爲什麼要做持續集成

易於定位錯誤。也就是當你的持續集成失敗了,說明你新加的代碼或者修改的代碼引起了錯誤。

及早在項目裏取得系統級的成果。因爲代碼已經被集成起來了,所以即使整個系統還不是那麼可用,但至少你和你的團隊都已經可以看到它已經在那了。

改善對進度的控制。這點非常明顯,每天都可以看到哪些功能可以使用,哪些功能還沒有實現。。

改善客戶關係。理由同上。

更加充分地測試系統中的各個單元。這也是我們常講的Daily Build與Smoke Test相結合帶來的絕大好處。

能在更短的時間裏建造整個系統。

有助於項目的開發數據的收集。比如說,項目代碼量的變化,經常出錯的Tests,經常出錯的source code等。

與其它工具結合的持續代碼質量改進。如與CheckStyle,FindBugs等等的結合。

與測試工具或者框架結合的持續測試。如與xUnit,SilkTest, LoadRunner等等的結合。

便於Code Review。在每個build裏,我們都可以知道與前一個build之間有什麼改動,然後針對這些改動,我們就可以實施Code Review了。

便於開發流程的管理。要把一個開發的build提交給測試組作測試,測完滿意了,再提交到發佈組去發佈。

 

4.持續集成的架構圖

 

5.Jenkins

Jenkins是基於Java開發的一種持續集成工具,用於監控持續重複的工作,功能包括:
1、持續的軟件版本發佈/測試項目。
2、監控外部調用執行的工作。
 
6.Jenkins安裝

前置條件:
jdk         注意需要Java 5以及以上的版本
tomcat
Maven
配置環境變量,修改端口等。
Jenkins安裝:
下載war
部署到tomcat中
啓動tomcat
訪問:http://192.168.18.63:8080/jenkins,按步驟填寫完成部署。

6.使用
  1. 項目名稱
  2. 自定義工作目錄
  3. 配置svn地址,用戶名,密碼
  4. Build periodically 0 1 * * *
  5. Poll SCM */5 * * * *
  6. Invoke top-level Maven targets mvn package
  7. Execute shell
  8. 構建後操作:FindBugs,Junit Test,Email等

自動部署執行的shell腳本:

  1. BUILD_ID=dontkillme 防止job完成後tomcat啓動終端,原因未知。
  2. sh /opt/tomcat/bin/shutdown.sh
  3. sleep 5
  4. rm -rf /opt/tomcat/webapps/cmcciw /opt/tomcat/webapps/cmcciw.war
  5. cp target/cmcciw.war /opt/tomcat/webapps/
  6. sleep 10
  7. sh /opt/tomcat/bin/startup.sh
 

 

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