基于jenkins的持續(xù)集成使用指南.docx_第1頁
基于jenkins的持續(xù)集成使用指南.docx_第2頁
基于jenkins的持續(xù)集成使用指南.docx_第3頁
基于jenkins的持續(xù)集成使用指南.docx_第4頁
基于jenkins的持續(xù)集成使用指南.docx_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

簡介:持續(xù)集成是一種軟件開發(fā)實踐,對于提高軟件開發(fā)效率并保障軟件開發(fā)質量提供了理論基礎。Jenkins 是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使持續(xù)集成變成可能。本文正是從持續(xù)集成的基本概念入手,通過具體實例,介紹了如何基于 Jenkins 快速搭建持續(xù)集成環(huán)境。持續(xù)集成概述什么是持續(xù)集成隨著軟件開發(fā)復雜度的不斷提高,團隊開發(fā)成員間如何更好地協(xié)同工作以確保軟件開發(fā)的質量已經(jīng)慢慢成為開發(fā)過程中不可回避的問題。尤其是近些年來,敏捷(Agile) 在軟件工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證軟件的質量也顯得尤其的重要。持續(xù)集成正是針對這一類問題的一種軟件開發(fā)實踐。它倡導團隊開發(fā)成員必須經(jīng)常集成他們的工作,甚至每天都可能發(fā)生多次集成。而每次的集成都是通過自動化的構建來驗證,包括自動編譯、發(fā)布和測試,從而盡快地發(fā)現(xiàn)集成錯誤,讓團隊能夠更快的開發(fā)內(nèi)聚的軟件。持續(xù)集成的核心價值在于:1. 持續(xù)集成中的任何一個環(huán)節(jié)都是自動完成的,無需太多的人工干預,有利于減少重復過程以節(jié)省時間、費用和工作量;2. 持續(xù)集成保障了每個時間點上團隊成員提交的代碼是能成功集成的。換言之,任何時間點都能第一時間發(fā)現(xiàn)軟件的集成問題,使任意時間發(fā)布可部署的軟件成為了可能;3. 持續(xù)集成還能利于軟件本身的發(fā)展趨勢,這點在需求不明確或是頻繁性變更的情景中尤其重要,持續(xù)集成的質量能幫助團隊進行有效決策,同時建立團隊對開發(fā)產(chǎn)品的信心。持續(xù)集成的原則業(yè)界普遍認同的持續(xù)集成的原則包括:1)需要版本控制軟件保障團隊成員提交的代碼不會導致集成失敗。常用的版本控制軟件有 IBM Rational ClearCase、CVS、Subversion 等;2)開發(fā)人員必須及時向版本控制庫中提交代碼,也必須經(jīng)常性地從版本控制庫中更新代碼到本地;3)需要有專門的集成服務器來執(zhí)行集成構建。根據(jù)項目的具體實際,集成構建可以被軟件的修改來直接觸發(fā),也可以定時啟動,如每半個小時構建一次;4)必須保證構建的成功。如果構建失敗,修復構建過程中的錯誤是優(yōu)先級最高的工作。一旦修復,需要手動啟動一次構建。持續(xù)集成系統(tǒng)的組成由此可見,一個完整的構建系統(tǒng)必須包括:1. 一個自動構建過程,包括自動編譯、分發(fā)、部署和測試等。2. 一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫。3. 一個持續(xù)集成服務器。本文中介紹的 Jenkins 就是一個配置簡單和使用方便的持續(xù)集成服務器。Jenkins Jenkins 是一個開源項目,提供了一種易于使用的持續(xù)集成系統(tǒng),使開發(fā)者從繁雜的集成中解脫出來,專注于更為重要的業(yè)務邏輯實現(xiàn)上。同時 Jenkins 能實施監(jiān)控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩(wěn)定性。下面將介紹 Jenkins 的基本功能。Jenkins 的安裝非常簡單,只需要從 Jenkins 的主頁上下載最新的 jenkins.war 文件然后運行 java -jar jenkins.war。同時,還可以點擊 Jenkins 頁面上的 launch 按鈕完成下載和運行 Jenkins。圖 1. Jenkins Launch 按鈕 啟動 Jenkins 后,會有一個后臺進程在命令行模式下運行。此時在瀏覽器地址欄中打開 http:/localhost:8080 就可以看到 Jenkins 的頁面了。Jenkins 的可貴之處在于具有非常高的可用性,從它的界面中能很輕松地完成各種配置,更多的配置和使用信息,可以在 Jenkins 的官方網(wǎng)站上查詢。圖 2. 命令行模式下運行 Jenkins 圖 3. Jenkins 主界面 非常有趣的是,Jenkins 還提供了非常豐富的插件支持,這使得 Jenkins 變得越來越強大。我們可以方便的安裝各種第三方插件,從而方便快捷的集成第三方的應用。比如 Jenkins 提供了對于 IBM Rational ClearCase 的插件支持。圖 4. Jenkins 可以集成 ClearCase 插件 此外,Jenkins 提供了豐富的管理和配置的功能,包括系統(tǒng)配置、管理插件、查看系統(tǒng)信息、系統(tǒng)日志、節(jié)點管理、Jenkins 命令行窗口、信息統(tǒng)計等功能。試試看,您就會發(fā)現(xiàn) Jenkins 非常好上手使用。圖 5. Jenkins 提供了豐富的管理功能 基于 Jenkins 快速搭建持續(xù)集成環(huán)境正如前文中所描述的那樣,一個持續(xù)集成環(huán)境需要包括三個方面要素:代碼存儲庫、構建過程和持續(xù)集成服務器。對 Jenkins 有了初步了解后,我們通過一個實例來集中展示如何快速搭建一個簡單的基于 Jenkins 的持續(xù)集成環(huán)境。我們使用的代碼存儲庫是 IBM Rational ClearCase。Jenkins 提供了對 ClearCase 的插件支持,它能方便地讓我們連接到 Base ClearCase 或者 UCM ClearCase,使其成為 Jenkins Project 的代碼控制器。另外,這個插件是基于 cleartool 命令的,所以必須在 Jenkins 的持續(xù)集成服務器上安裝 ClearCase 的客戶端程序。在 Jenkins 的插件管理界面中選擇 ClearCase Plugin,點擊頁面下方的 Install 按鈕。圖 6. 選擇 ClearCase 插件 在打開的頁面中提示安裝完成后,Jenkins 需要重新啟動來激活這個插件。重新執(zhí)行 java -jar Jenkins.war 后,在 Jenkins 的頁面中,我們就能看到 ClearCase plugin 已經(jīng)被安裝到 Jenkins 了。圖 7. ClearCase 插件安裝成功 類似 IBM Rational ClearCase,SVN(subversion)是目前比較流行的版本管理工具。很多開源軟件都是用 SVN 作為代碼版本管理軟件。為了讓實例更具有代表性,本文中我們使用 SVN 作為代碼存儲器。 接下來,我們開始新建一個 Jenkins 項目, 由于我們需要連接 SVN 的代碼存儲器, 我們選擇 Build a free-style software project。圖 8. 新建 JenkinsTest Job 然后我們就可以很方便的配置這個 JenkinsTest 項目了。Jenkins 很人性化的一點是在每個配置項的右側都有一個幫助的圖標,點擊這個圖標,Jenkins 會告訴您如何配置這個配置項。圖 9. 配置 JenkinsTest 根據(jù)實際的 SVN 服務器服務器信息配置 Source Code Management,這能讓 Jenkins 知道如何從哪里獲取最新的代碼。本例中假設 Repository 就在本地。圖 10. 配置連接到 SVN 服務器 根據(jù)開發(fā)需要,假設每一個小時我們需要重新構建一次。選擇 Build periodically,在 Schedule 中填寫 0 * * * *。第一個參數(shù)代表的是分鐘 minute,取值 059;第二個參數(shù)代表的是小時 hour,取值 023;第三個參數(shù)代表的是天 day,取值 131;第四個參數(shù)代表的是月 month,取值 112;最后一個參數(shù)代表的是星期 week,取值 07,0 和 7 都是表示星期天。所以 0 * * * * 表示的就是每個小時的第 0 分鐘執(zhí)行一次構建。圖 11. 選擇如何觸發(fā)構建 接下來就是要添加 build 的步驟了。Jenkins 提供了四個選項供我們選擇,可以根據(jù)需要執(zhí)行或調用外部命令和腳本。圖 12. 四種 build step 供選擇 在本例中,我們通過調用和執(zhí)行 Windows batch command,將 SVN repository 中 Java 代碼編譯并生成 Jar 文件。也可以根據(jù)項目的實際編寫自己的 shell 腳本配置在這里。圖 13. 配置 Execute Windows batch command 選擇和配置其他的選項,比如郵件提醒,然后點擊 save 保存。圖 14. 配置郵件提醒 接下來的每小時的第 0 分鐘,JenkinsTest Job 就會被構建。我們可以在 Jenkins 中觀察構建的進度和最終的狀態(tài)成功或者失敗。太陽代表之前的構建沒有任何失敗,藍色的小球代表構建成功。圖 15. JenkinsTest 開始構建 同時我們可以點擊 JenkinsTest 查看單次構建的 Console 的輸出結果。從中我們能看到構建的第一步是從 SVN 服務器上 check out 代碼,然后調用我們先前配置的 Windows batch command。圖 16. JenkinsTest 構建的 console 輸出 最后,我們可以看到 build 的最后結果 Success,表明本次構建成功。圖 17. 構建成功的 Console 輸出 接下來我們再次新建一個 Jenkins 的 Job,用于將生成的 build 分發(fā)到不同的節(jié)點上。這次 build triggers 我們選擇 Build after other projects are built,讓這個 Job 在 JenkinsTest 成功 build 后觸發(fā)。這樣一來就能達到我們自動 build 和自動分發(fā)的功能。圖 18. 新建 Distribute job 不同的是,這次我們選擇調用 Ant 腳本來完成分發(fā)的工作。只需要將 Ant 腳本的 XML 的文件配置在 Targets 中供 Jenkins 調用。圖 19. Distribute 調用外部 Ant 腳本 然后我們就可以在 Jenkins 中觀察構建的狀態(tài)了。一旦構建失敗我們能看到相應的警示圖標,同時,如果配置了郵件提醒,相關人員也會受到郵件。記住我們先前所提醒的那樣,分析和處理構 建的失敗是優(yōu)先級最高的工作。接下來,我們還可以加入更多的 Jenkins 項目

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論