概述&目的linux
因爲中心項目過多,但全部項目特色是持續時間長,變動少,因此易於作CI(持續集成)的build和test,持續檢查每一個項目軟件的健康情況。但前期作持續集成遇到一些問題,在持續集成軟件自己Jenkins設計上出現問題:是因爲不一樣項目(版本分支)過多致使Jenkins環境設置過多,因此須要從新考慮一套有利於測試和項目上的持續集成環境的框架,此設計供你們討論。sql
方案windows
針對項目過多和Jenkins分支過多不善於管理,每一個項目都登陸jenkins進行操做,沒有多線的感念,管理混亂,從而分析了其中問題從而整理了對於此Jenkins框架的方案。 安全
目前公司持續集成的測試分類不少,不一樣的人員都有登陸master主機的權限,可能會致使誤操做或者修改,影響jenkins執行過程和和結果。服務器
應對方案app
使用一臺服務器做爲Jenkins的master,其他項目均應用在節點機子上,從而節省維護多個Jenkins 的成本,只須要維護主機上的Jenkins配置和插件等,從機器也只須要安裝主機上的節點jar包便可,詳情設計以下:框架
設置和應用 Jenkins ide
流程測試
此流程附帶開發交付階段(紅框內),不考慮開發部署也能夠。標準流程以下:
開發流程被置灰了,將來若是測試部署也可考慮。
項目 1
從代碼管理工具上(aligi,SVN)t上獲取branch/trunk的代碼。
項目 2
檢查項目 1 中下載的源代碼是否有安全性等問題,運行開發檢查測試。
項目 3
檢查項目完成後,構建工做開始。
項目 4
成功構建完成後,是在構建驗證測試(Build Verification Test,BVT)環境中安裝該構建版本。在 BVT 環境中運行 BVT 測試案例。若是 BVT 測試成功經過,能夠輸出到開發或者測試應用服務器
項目 5
測試可經過successful郵件或者測試本身的jenkins去獲取開發對應的輸出軟件/工具,此留也能夠做爲測試的流程1,製做測試本身的測試環境Jenkins
項目 6
在測試環境中下載開發版本。應用軟件/工具後,Jenkins 會觸發項目 7,以便運行功能驗證測試(Functional Verification Test,FVT)。
項目 7
FVT 是一個自動測試列表,其中包括不少測試:校驗,檢查,統計等。FVT 測試經過後,會發送測試經過郵件,相似一封Successful的郵件,告知相關人員。
下圖1則是顯示了總體流程。若該項目成功完成後,會觸發開始下一個項目。若是項目失敗,那麼流程將會結束並向相關人員發送電子郵件。
持續構建框架的拓撲結構
結束語
這樣作持續集成會幫助測試和開發自動部署和測試的各類工做,從而節約其寶貴的時間。該框架還能幫助你們儘早發現流程中的任何問題或缺陷,優點以下:
1. 減小多項目的溝通成本,可讓組內人員看到其餘人員在作的項目
2. 利於維護、跟蹤
3. 方便管理,減小配置環境成本
針對項目過多和Jenkins分支過多不善於管理,分析了其中問題從而整理了對於此Jenkins框架的方案。