Hudson持續(xù)集成服務器幫助_第1頁
Hudson持續(xù)集成服務器幫助_第2頁
Hudson持續(xù)集成服務器幫助_第3頁
Hudson持續(xù)集成服務器幫助_第4頁
Hudson持續(xù)集成服務器幫助_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Hudson持續(xù)集成服務器幫助1 Hudson介紹1.1 Hudson簡介Hudson 是一種革命性的開放源碼 CI (持續(xù)集成)服務器,它從以前的 CI 服務器吸取了許多經驗教訓。Hudson 最吸引人的特性之一是它很容易配置:很難找到更容易設置的 CI 服務器,也很難找到開箱即用特性如此豐富的 CI 服務器。Hudson 容易使用的第二個原因是它具有強大的插件框架,所以很容易添加特性。例如,一個 Hudson 插件可以隨時間的推移跟蹤 FindBugs 和代碼覆蓋。它還可以報告測試結果的趨勢(來自 JUnit 或 TestNG)以及構建結果和對應的執(zhí)行時間。hudson主要用于:持續(xù)、自動

2、地構建/測試軟件項目.監(jiān)控Hudson 需要運行 java5或以上版本,容器Servlet2.4或以上的版本。一個典型的持續(xù)集成周期包括以下幾個步驟:1. 持續(xù)集成服務器不斷從版本控制服務器上檢查代碼狀態(tài),看代碼是否有更新。2. 如果發(fā)現代碼有最新的提交,那么就從版本控制服務器下載最新的代碼。3. 等代碼完全更新以后,調用自動化編譯腳本,進行代碼編譯。4. 運行所有的自動化測試。5. 進行代碼分析。6. 產生可執(zhí)行的軟件,能夠提供給測試人員進行測試。1.2 Hudson名詞解釋· 持續(xù)集成(CI) :”Continuous Integration is a software deve

3、lopment practice where members of a team integrate their work frequently.Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team t

4、o develop cohesive software more rapidly.”-引用 · 任務(Job) :在hudson上任務是一個靜態(tài)的概念,任務有配置信息、執(zhí)行步驟、任務通知郵件、任務當前/歷史狀態(tài)、趨勢等信息。任務之間,可以定義串行、并行的關系。 · 構建(Build) :構建對應于任務的一次執(zhí)行,構建擁有l(wèi)og、歸檔信息(archive)、測試報告、持續(xù)時間、執(zhí)行結果、狀態(tài)等信息。 · 快速構建(Quick_build) :快速構建對應于一個需要盡快反饋結果的任務,通常反饋給RD,報告本次構建是否成功,以便及時發(fā)現問題。Quick build通常只

5、運行編譯、單測、以及部分QA的用例(重要且運行時間短)。Quick build 成功后會觸發(fā)slow build。快速構建一般時間在10分鐘以內。 · 本地構建(Local_buidl) :RD在提交代碼前,需在本地完成本次構建,本地構建一般包括編譯、單測等。 · 慢速構建(Slow_build) :對應于一個需要全面覆蓋保證質量的任務,通常反饋給QA/RD,會運行QA全部的用例、覆蓋率統(tǒng)計、以及其他的一些驗證。 · 模塊任務 :模塊任務是對于某個模塊應用持續(xù)集成的一個流程。根據模塊的復雜性、任務調度等需要,模塊任務可以對應于一個或多個Job。多個Job可以配置成

6、串行、并行、串行+并行等方式。 · 節(jié)點(node) :對應于hudson上配置的一臺機器。多個節(jié)點構成機器Grid??梢宰屓蝿赵贕rid內實時調度,也可以讓任務限制在某個或幾個node上運行。 1.3 hudson工作流程2 Hudson安裝2.1 Hudson安裝方法1(通用)下載最新版本,(它打包為一個 WAR 文件)。hudson官方網址: /將hudson.war包文件直接部署到servlet容器中,然后啟動容器,在瀏覽器中輸入:http:/localhost:8080/hudson/ 就會出現hudson的主界面。2.2 Hudson

7、安裝方法2(baidu腳本)下載ftp:/ Hudson_install.sh腳本會安裝使用8235端口作為hudson web服務的端口。安裝成功后,即可通過http:/測試機:8235/hudson訪問hudson。在測試機指定的安裝目錄下,會生成一個CI目錄 作為CI平臺的根目錄。CI下的目錄結構如下:2.3 Hudson slave node機器安裝 : 當任務較多需要一臺服務器資源不夠時,可以添加新的機器作為slave,與hudson 服務器(master)一起構成機器Grid。 注:如果node的機器上沒有安裝jdk,則需要保證在Remote FS root下有jdk目錄, 把JD

8、K6.0以上的版本放到該目錄下。一定要保證多個node的環(huán)境一致,以便任務分發(fā)到各個node上執(zhí)行均能正常。 2.4 Hudson 重啟l Hudson項目:bb-game-:/home/work/hudson/l /home/work/hudson/CI/tomcat3 Hudson配置3.1 系統(tǒng)管理系統(tǒng)設置l 主目錄,這里包含hudson要執(zhí)行的任務所在工作區(qū)與相關配置信息。l 系統(tǒng)消息:填寫一些說明信息l 執(zhí)行者數量:能同時執(zhí)行的任務數量,l 生成前等待時間:一個計劃中的構建在開始之前需要等待選項中設置的秒數l SCM簽出重試次數:如果從版本庫簽出代碼失敗,Hudson會按照這個指定的

9、次數進行重試之后再放棄.l 啟用安全:設置hudson的登錄規(guī)則,默認登錄為匿名登錄,l Global properties:設置一些全局變量,類似于windows的環(huán)境變量l JDK installations:設置JDK的安裝路徑l Shell executable:設置window shell命令l Ant installation:設置ant 的安裝路徑l mave installation設置mave的安裝路徑l cvs executable:設置cvsnt執(zhí)行進程的路徑(cvs.exe)l .cvspass file:設置cvsnt管理員文件的路徑(passwd文件)l e-mai

10、l notification:設置當發(fā)生錯誤時發(fā)送的郵箱地址,多個郵箱地址以空格分開l hudson url:就是hudson的默認地址3.2 系統(tǒng)管理管理插件系統(tǒng)管理à管理插件à可選插件à選中需要安裝的插件點擊右下角的安裝即可4 Hudson項目及構建方法4.1 創(chuàng)建項目各名詞解釋l 構建一個自由風格的軟件項目:通常使用這個選項,建立常規(guī)的任務的配置構建一個Maven 2/3 (Legacy)項目:用于配置maven項目l 構建一個多配置項目:l 監(jiān)控一個外部的任務:l 復制現有任務:將現有的任務配置進行復制,然后在此基礎上做修改4.2 自由風格項目4.2.1

11、創(chuàng)建項目 項目設置l Project name:項目名稱l Description:項目說明 l Discard Old Builds:是控制著您想要在Hudson所在的磁盤把構建記錄存儲的有效期 (諸如控制臺輸出、編譯產成品等等)。Hudson為此提供了兩個標準:1。時間驅動。在Hudson中您可以判斷如果達到一定時限來刪除一條記錄(例 如,七天前)。2。數量驅動。在Hudson中您可以確保它擁有N份構建。如果又有新的構建開始,最早的那份(記錄)就將被刪除。Hudson也可以讓您 建立的個別構建定義為'永遠保持這個記錄',以便防止某些重要的構建被自動丟棄。)這里

12、輸入的是5,也就是hudson確保5份構建。l This build is parameterized:設置編譯時參數l Disable Build:選擇將會禁用此構建任務l Restrict where this project can be run:指定任務在哪臺機器上運行(例如:master,slave node等;)l Advanced Node and Label expressions:給任務添加標簽,從而能限制該任務只在哪些node上運行,只有任務和node的標簽相同時,才會在該node上運行,這通常用于任務運行環(huán)境有 特殊的要求時(例如:linux64 mem64G等等)4.2

13、.1.2 高級項目設置Advanced Project Options:l Use custom workspace:限制該任務在哪個路徑下執(zhí)行,最好給各個目錄設定統(tǒng)一的工作目錄(例如/home/work/CI/workspace),然后在工作目錄下把不同的任務放在不同的子目錄下(例如test-bs) 源代碼管理Source Code Management:在默認情況下是這三個選項:Subversion,CVS,None如果您安裝了一個與SCM相關的插件,并重新啟動Hudson,那么在這個清單上也將出現一些新的選擇。l Repository URL:為本任務需要構建的源代碼分支;

14、可以監(jiān)控多個svn路徑、分支等l Check-out Strategy:Use update 選中的話。每次構建時。會更新下代碼分支,再執(zhí)行構建 觸發(fā)構建的方式Build Triggers l Build after other projects are built : 其他的任務構建成功后,觸發(fā)本任務的新構建;此選項支持一條裝配(流水作業(yè))線作業(yè)依賴: 一個作業(yè)依賴于另一個作業(yè)的輸出的情況 就是可以支持連續(xù)編譯多個任務,設置這個選項后,在其他任務編譯之后,可以立即自動啟動這個任務,例如,我們通常在項目中會有二方庫的部署,我們設置,先部署二方庫,然后在編譯我們的應用,使得依賴于二

15、方庫的應用能夠正常編譯成功。l Poll SCM:定期更新倉庫代碼,也是使用定時作業(yè)表達式;定時檢查代碼更改,在代碼更改時觸發(fā)構建五個*表示: 如果svn中有代碼更新,則每分鐘執(zhí)行一次任務; 所以在代碼更新到svn后,可以在一分鐘后就可以看到測試結果l Build periodically:定時觸發(fā)構建,可用于dailybuild, 此選項 (也是使用定時作業(yè)表達式)僅僅通知Hudson按指定的頻率對項目進行構建,而不管SCM是否有變化。如果想在這個作業(yè)中運行一些測試用例的話,它就很有幫助。l Build when Maven SNAPSHOT dependencies have been u

16、pdated externally:l Build when Maven dependencies have been updated by Maven 3 integration:l Trigger builds remotely:遠程命令來觸發(fā)本次構建 構建命令Build 填寫構建時需要執(zhí)行的命令。執(zhí)行時,其實路徑是Use custom workspace時配置的路徑。這里可以添加多個命令框,每個命令框中可以輸入多個命令,順序執(zhí)行。 注意:如果任意一個命令的返回值不為0,則hudson就認為本次構建失敗,并中斷后面命令的執(zhí)行。 構建后動作 l Archive t

17、he artifacts:設置每次構建后,archive的位置。設置好后,每個構建都能帶有archive。詳細的設置方式可以點右邊的問號。注意:如果是想拿某個目錄下的所有的東西,正則表達式是"dir/*"l Publish JUnit test result report:設置每次構建的報告位置。設置好后,每個構建都能看到報告。注意,這的報告只支持junit格式的報告,可以調用CI/bin /btest2junit工具將atpreport產生的atp格式的報告轉成junit格式的報告。l Build other projects:在本次構建后,觸發(fā)其他任務的執(zhí)行。l E-m

18、ail Notification:可以設置成功/失敗情況下,發(fā)給誰(提交人,關注人等等),更多配置請點擊右邊的“?”4.2.2 項目build方法-ant Hudson-Ant1、 如果不配置其他文件的情況,則默認執(zhí)行build.xml文件2、 如有其他腳本需要build,則需配置路徑比如:需執(zhí)行build_test.xml文件 直接用ant命令build/home/work/CI/tools/ant1.8.2/bin/ant -file build_test.xml4.2.3 項目build方法-shell4.2.4 項目build方法-maven5 Hudson項目構建及報告5.1 項目構建1、開始構建點擊立即構建2、構建開始執(zhí)行build History 下面的#1有下滾動條,說明正在構建中,點擊它會出現下圖3、 構建結束4、對于構建過程可以查看構建細節(jié)1)點擊某次構建,進入構建詳細頁2)點擊命令行輸出,查看構建細節(jié)(對于構建失敗的情況,便于查看出現異常) 5.2 作業(yè)狀況分析Hudson使用兩個概念來介紹一個作業(yè)的總體狀況:作業(yè)狀態(tài):圖中分級符號概述了一個作業(yè)新近一次構建會產生的四種可能的狀態(tài):l Successful: 完成構建,且被認為是穩(wěn)定的。l Unsta

溫馨提示

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

評論

0/150

提交評論