一.簡介
Jenkins是一個開源項目,提供了一種易於使用可擴展的持續集成系統,使開發者從繁雜的集成中解脫出來,專注於更為重要的業務邏輯實現上。同時Jenkins能實時監控集成時存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。
2009年,甲骨文收購了Sun並繼承了Hudson代碼庫。在 2011 年年初,甲骨文和開源社區之間的關系破裂,該項目被分成兩個獨立的項目:
Jenkins:由大部分原始開發人員組成
Hudson:由甲骨文公司繼續管理
Jenkins 其本身上沒有整合太多的功能,只是提供了一個持續集成的WEB平台,它是通過大量的插件,實現了一系列的持續化集成的工作。
例如通過gitlab插件進行代碼下載,指定下載分支。通過Git Parameter Plug-In動態獲取代碼的分支信息,構建時可以選擇分支發布。
覺得默認顯示的pipeline流程頁面不好看,用Blue Ocean插件可以顯示更舒服的流程頁面。
實際上不使用那些插件,只單純寫一個shell腳本,里面寫上git clone代碼,編譯再ansible發布,而jenkins只是運行這個腳本並打印日志也是可以的。並且也推薦用這種方法,這里使用ansible插件就需要在jenkins中進行配置不方便后續進行遷移。而在機器上安裝一個Ansible並在腳本中運行playbook會更加方便管理。
二.特點
- 易於安裝,只要把jenkins.war部署到servlet容器,不需要數據庫支持
- 易於配置,所有配置都是通過其提供的web界面實現
- 集成RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知
- 生成JUnit/TestNG測試報告
- 分布式構建支持Jenkins能夠讓多台計算機一起構建/測試
- 支持多種擴展插件,你可以開發適合自己團隊使用的工具
- 支持pipeline流水線,可以用代碼描述配置過程,方便使用