持續整合JenkinsBlueOcean初探
1. BlueOcean是什麼?
Jenkins是一款Java開發的跨平臺持續整合和持續釋出的開源專案,它具有如下特徵:
安裝及遷移方便:安裝直接部署war包,遷移只需替換JENKINS_HOME目錄。
配置方便:視覺化後臺操作。
豐富的外掛生態圈:比如git, junit, jacoco等。
可擴充套件:自定義外掛。
分散式:支援Master-Slave。
Jenkins已經作為各大公司進行CI/CD的首選工具。
Jenkins UI從2006年-2016年,幾乎沒有變化。
為了適應Jenkins Pipeline和 Freestyle jobs任務,Jenkins推出了BlueOcean UI,其目的就是讓程式設計師執行任務時,降低工作流程的複雜度和提升工作流程的清晰度,它具有如下特徵:
清晰的視覺化,對CI/CD pipelines, 可以快速直觀的觀察專案pipeline狀態。
pipeline可編輯(開發中),視覺化編輯pipeline,現在只能通過配置中Pipeline的Pipeline script編輯。
pipeline精確度,通過UI直接介入pipeline的中間問題。
整合程式碼分支和pull請求。
2. BlueOcean使用
BlueOcean是以外掛的形式存在,需要Jenkins版本2.7.*以上,目前還是beta版本,功能不是很完善。
安裝步驟:
系統管理->管理外掛->可選外掛,選擇BlueOcean beta->restart。
安裝完畢後,BlueOcean入口在選單欄居中: “Open Blue Ocean”,進去後可以看到全新的UI:
我們新建一個Pipeline專案,配置如下:
其中最重要的是定義pipeline script:
node { stage(`Clone Code`) { // for display purposes // Get some code from a GitHub repository git `https://github.com/trautonen/coveralls-maven-plugin.git/` } stage(`Code Analysis`) { sh "mvn clean" sh "infer -- mvn compile" } stage(`Testing`) { sh "mvn test" junit `target/surefire-reports/TEST-*.xml` } stage(`Package`) { sh "`mvn` -Dmaven.test.skip=true package" archive `target/*.jar` } stage(`Deploy`) { echo `pipeline success` } }
pipeline script定義了整個Pipeline的流程,stage(`Clone Code`)
中Clone Code
就是pipeline中的第一步,依次類推。
每一步做具體任務,比如git `https://github.com/trautonen/coveralls-maven-plugin.git/`
就是去拉原始碼,具體的語法可以參考Pipeline Syntax:
配置完任務後,進入BlueOcean,點選Run:
開始執行pipeline:
執行結束後,pipeline順利通過:
檢視Tests結果(對應pipeline script中junit `target/surefire-reports/TEST-*.xml`
):
檢視打包結果(對應pipeline script中archive `target/*.jar`
):
執行過程很流暢,每個步驟通過清晰的視覺化過程,使用者能快速的定位流程中的問題。
3.BlueOcean Roadmap
現在BlueOcean還是beta版本,支援的功能比較侷限,比如不支援引數化,不支援指定具體slave執行等等,我們看下BlueOcean Roadmap:
相信Jenkins BlueOcean功能會越來越完善,而使用Jenkins BlueOcean會大大提高CI/CD工作效率。
本文轉自 msj0905 51CTO部落格,原文連結:http://blog.51cto.com/sky66/1934597
相關文章
- 持續整合、持續部署、持續交付、持續釋出
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 持續整合、持續交付、持續部署簡介
- 整合持續整合工具
- iOS 持續整合iOS
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- Jenkins持續整合Jenkins
- 持續整合(CI)、自動化構建和自動化測試--初探 .
- 初探BTrace指令碼 - 看看持續整合哪個環節比較慢指令碼
- 從持續整合到持續交付——DockerCloud概覽DockerCloud
- 談談持續整合,持續交付,持續部署之間的區別
- 通過Docker容器執行持續整合/持續部署Docker
- 持續整合配置之Nuget
- Taro 小程式持續整合
- Jenkins持續整合配置Jenkins
- 淺談持續整合的理解以及實現持續整合,需要做什麼?
- 使用流水線外掛實現持續整合、持續部署
- 我們正在路上—從持續整合到持續釋出
- Flutter web 持續整合實踐FlutterWeb
- Jenkens+Docker+Git 持續整合DockerGit
- jenkins+docker 持續整合JenkinsDocker
- iOS持續整合(一)——fastlane 使用iOSAST
- 持續整合 Jenkins 簡介Jenkins
- 小程式的持續整合方案
- iOS 持續整合系列 – 開篇iOS
- Jenkins 持續整合使用教程Jenkins
- 持續整合(三):最佳實踐
- CI 持續整合 - 阿里云云效阿里
- 持續整合及部署利器:GoGo
- 使用GitLabCI持續整合Gitlab
- 持續整合開源軟體
- SAP開源的持續整合-持續交付的解決方案
- CI/CD 持續整合部署實踐
- 微服務容器部署與持續整合微服務
- ick:一個持續整合系統
- iOS使用fastlane實現持續整合iOSAST
- 持續整合Jenkins+GitlabJenkinsGitlab