本章將介紹Blue Ocean的各個(gè)方面,從儀表板到各個(gè)Pipeline運(yùn)行的查看分支和結(jié)果,使用可視編輯器修改Pipeline作為代碼。
本章適用于所有技能水平的Jenkins用戶,但初學(xué)者可能需要參考“ 使用Jenkins ”的一些部分來了解本章涵蓋的一些主題。
如果您還不熟悉Jenkins術(shù)語和功能,請參考 Jenkins入門。
BlueOcean重新考慮了Jenkins的用戶體驗(yàn)。BlueOcean由Jenkins Pipeline設(shè)計(jì),但仍然兼容自由式工作,減少了團(tuán)隊(duì)成員的混亂,增加了清晰度。
要開始使用BlueOcean,請參閱BlueOcean入門。
世界已經(jīng)從純粹功能的開發(fā)人員工具轉(zhuǎn)移到開發(fā)人員工具,成為“開發(fā)人員體驗(yàn)”的一部分。也就是說,它不再是一個(gè)單一的工具,而是開發(fā)人員在一天中使用的許多工具,以及它們?nèi)绾螀f(xié)同工作,以實(shí)現(xiàn)對開發(fā)人員有益的工作流程 - 這是開發(fā)人員體驗(yàn)。
像Heroku,Atlassian和Github這樣的開發(fā)人員工具公司已經(jīng)提出了一些被認(rèn)為是開發(fā)人員的經(jīng)驗(yàn)的酒吧,開發(fā)人員越來越期待卓越的設(shè)計(jì)。近年來,開發(fā)人員正在變得越來越快地被吸引到不僅可以實(shí)現(xiàn)功能的工具,而且被設(shè)計(jì)為無縫地融入其工作流程中,并且是使用的樂趣。這種轉(zhuǎn)變代表了Jenkins需要提升的設(shè)計(jì)和用戶體驗(yàn)標(biāo)準(zhǔn)。
創(chuàng)建和可視化連續(xù)輸送Pipeline對于許多Jenkins用戶來說是有價(jià)值的,這在社區(qū)為滿足他們的需求而創(chuàng)建的5+個(gè)插件中得到證明。對我們來說,這意味著需要重新審視Jenkins目前如何表達(dá)這些概念,并考慮將輸送Pipeline作為Jenkins用戶體驗(yàn)的中心主題。
這不僅僅是持續(xù)的交付概念,而且是開發(fā)人員每天使用的工具--Github,Bitbucket,Slack,HipChat,Puppet或Docker。它不僅僅是Jenkins,而是圍繞著Jenkins跨越多種工具的開發(fā)人員工作流程。
新團(tuán)隊(duì)沒有時(shí)間學(xué)習(xí)組裝自己的Jenkins經(jīng)驗(yàn) - 他們希望通過更快地運(yùn)送更好的軟件來改善他們的上市時(shí)間。組裝理想的Jenkins經(jīng)驗(yàn)是我們可以一起工作,作為Jenkins用戶和貢獻(xiàn)者界定的社區(qū)。隨著時(shí)間的推移,開發(fā)人員對良好用戶體驗(yàn)的期望將會改變,Blue Ocean的使命將使Jenkins項(xiàng)目得以回應(yīng)。
Jenkins社區(qū)已經(jīng)將汗水和淚水澆灌到現(xiàn)有的最具技術(shù)能力和可擴(kuò)展性的軟件自動化工具中。今天沒有任何改變Jenkins開發(fā)人員經(jīng)驗(yàn)的事情,只是邀請別人 - 封閉的來源 - 來做這件事。
BlueOcean名稱來自 藍(lán)海戰(zhàn)略 ,而不是在有爭議的空間中看待戰(zhàn)略問題,而是考慮更大的無爭議的空間中的問題。為了更簡單的說,考慮冰球傳奇韋恩格雷茨基的這個(gè)報(bào)價(jià):“滑冰到冰球?qū)⒃谀睦铮皇窃谀抢铩薄?/p>
Blue Ocean旨在為Pipeline提供豐富的體驗(yàn),并與您在系統(tǒng)中配置的任何自由式作業(yè)兼容。但是,它們將無法從為Pipeline建立的任何功能中受益 - 例如,Pipeline可視化。
由于BlueOcean設(shè)計(jì)是可擴(kuò)展的,社區(qū)將來有可能將其擴(kuò)展到其他工作類型。
其意圖是,隨著BlueOcean成熟,用戶回到現(xiàn)有UI的原因?qū)⒃絹碓缴佟?/p>
例如,在第一個(gè)版本中,我們將主要針對Pipeline作業(yè)。您可能可以在Blue Ocean中看到現(xiàn)有的非Pipeline作業(yè),但可能無法從新UI中配置它們一段時(shí)間。這意味著用戶必須跳回到經(jīng)典的用戶界面來配置非Pipeline作業(yè)。
這可能會有更多的例子,這就是為什么經(jīng)典的用戶界面在長期來看仍然是重要的。
可擴(kuò)展性是Jenkins的一個(gè)非常核心的概念,所以能夠延伸BlueOceanUI是很重要的。基于一些研究,我們制定了一種方式,允許<ExtensionPoint name=..>在BlueOcean的標(biāo)記中使用,為插件貢獻(xiàn)UI(插件可以擁有自己的BlueOcean擴(kuò)展點(diǎn),就像今天在Jenkins一樣) 。BlueOcean本身(至今為止)使用這些擴(kuò)展點(diǎn)實(shí)現(xiàn)。擴(kuò)展程序通常由插件提供,只要他們希望為BlueOcean經(jīng)驗(yàn)做出貢獻(xiàn),他們將有一些額外的JavaScript來提供擴(kuò)展。
BlueOcean作為Jenkins插件本身構(gòu)建。然而,有一個(gè)關(guān)鍵的區(qū)別。它為http請求提供了自己的端點(diǎn),并通過不同的路徑提供html / javascript,而沒有現(xiàn)有的Jenkins UI標(biāo)記/腳本。React.js和ES6用于提供Blue Ocean的JavaScript組件。受到這個(gè)優(yōu)秀的開源項(xiàng)目(反應(yīng)插件)的啟發(fā),建立了一個(gè)<ExtensionPoint>模式,允許擴(kuò)展來自任何Jenkins插件(僅使用Javascript),如果它們無法加載,則會發(fā)生故障。
源代碼可以在Github上找到:
更多建議: