BuildBot

BuildBot

BuildBot是一款基於Python開發的開源持續集成工具,依賴Twisted網路框架實現跨平台運行。該工具主要用於代碼變更後觸發自動化構建、測試及部署流程,支持Git/SVN集成,可配置編譯、文檔生成等步驟,並通過預設閾值實現失敗次數容忍機制。

BuildBot採用主從式架構,支持NAT防火牆後的分散式構建環境,僅需Python運行環境即可部署。其核心組件包括Web UI、JSON API和ForceScheduler配置工具,提供構建狀態監控、郵件通知等功能。該工具具備高度可擴展性,2010年5月發布的0.8.0版本新增資料庫後端模組增強穩定性,2012年3月發布的0.8.6版本最佳化了認證框架與Web鉤子等特性。2012年9月發布的0.8.7版本增加了對多代碼庫項目構建的支持和新的屬性插值功能,並要求Python 2.5和Twisted 9.0以上版本。2014年6月發布的0.8.9版本集成了GitHub commit狀態通知和BitBucket pull request綁定,WebStatus儀錶板支持自動滾動stdout輸出。

基本介紹

  • 外文名:BuildBot
  • 類別:自動構建工具
  • 特點:支持各種平台
  • 編寫語言:python
  • 上市時間:2010年5月26日
簡介,程式特點,技術架構,版本發布,

簡介

BuildBot(或Buildbot)是一個基於Python的持續集成系統,用於自動化軟體構建、測試和發布過程,以驗證代碼的變化。該系統通過自動重建和測試代碼變更,幫助開發團隊在問題引入後儘快發現,從而減少構建失敗。該系統可以跟蹤警告數量、鏡像大小、編譯時間等參數的變化趨勢,使相關信息更為清晰。
BuildBot 0.8.9 版本於2014年6月17日發布,新特性包括集成了 GitHub commit 狀態通知和 BitBucket pull request 綁定,WebStatus 儀錶板支持自動滾動 stdout 輸出。
(概述圖片來源:,內容來源:)

程式特點

Buildbot是很容易設定,但非常可擴展性和可定製的。它支持任意的構建過程,並不僅限於共同構建過程為特定的語言(例如,自動工具或Ant)
Buildbot支持各種平台上構建和測試。開發人員,沒有足夠的設施,以測試他們的變化無處不在提交之前,不久之後,他們是否已經打破了構建或不知道。
Buildbot有最低要求為從站:使用virtualenv,只需要一個Python的安裝。後面的NAT防火牆和通信與主從站都可以運行。
Buildbot前的開發人員及時獲取信息的構建,具有多種狀態報告工具。 
此外,Buildbot的編譯過程可使用C、Python等任何語言處理,對運行環境要求低,僅需Python和網路連線。它支持通過網頁、電子郵件、IRC等方式報告狀態,並可跟蹤構建進度,提供估計完工時間。通過類進行靈活的配置,並提供新工作方式的調試工具。

技術架構

BuildBot採用主從式架構。其核心組件包括Web UI、JSON API和ForceScheduler配置工具。Worker支持使用Docker容器作為Worker,通過worker.DockerLatentWorker類實現。
變更監測通過調度程式如schedulers.SingleBranchScheduler監視代碼倉庫如GitHub的更改並自動觸發構建。構建流程通過構建工廠util.BuildFactory定義具體的構建步驟,例如拉取代碼、運行npm install和npm test。
使用構建器util.BuilderConfig將特定的Worker、調度程式和構建工廠綁定在一起。變更通知方式除了調度程式主動輪詢,還支持通過Web界面手動觸發以及通過GitHub Webhook接收推送通知。數據持久化使用資料庫如SQLite來存儲構建歷史、狀態等配置信息。

版本發布

2010年05月26日,BuildBot 0.8.0 發布,該版本引入一個全新的資料庫後端模組,該改進使得調度中的構建不會因為重啟而丟失信息;另外使用了模板引擎對 Web接口進行重構,增加一個新的 JSON API 和一個認證框架以及其他的改進。同時新版本更多的數據轉入資料庫後端以提升靈活性和可伸縮性。
2011年09月20日,BuildBot 0.8.5 發布。
2012年03月12日,BuildBot 0.8.6 發布,該版本包含大量貢獻者的改進,包括一個新的 ForceScheduler 允許靈活的對強制構建進行配置,同時包含 Web UI、IRC、MailNotifier、properties 和 Web 鉤子的一些改變,修復了很多bug。
2012年09月24日,BuildBot 0.8.7 發布,該版本包含一些新特性:支持構建由多個代碼庫組成的項目;新的、更靈活的屬性插值支持(Interpolate);對ForceScheduler的顯著改進。該版本至少要求 Python 2.5 和 Twisted 9.0 版本。
2014年06月17日,BuildBot 0.8.9 發布,新特性包括集成了 GitHub commit 狀態通知和 BitBucket pull request 綁定;WebStatus 儀錶板支持自動滾動 stdout 輸出。

相關詞條

熱門詞條

聯絡我們