真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Jenkins可視化階段視圖的改進(jìn)是什么

小編給大家分享一下Jenkins可視化階段視圖的改進(jìn)是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

10余年的青山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整青山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“青山網(wǎng)站設(shè)計”,“青山網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

Jenkins 可視化階段視圖的改進(jìn)

流水線除了成功或失敗以外,還有一種介于兩者之間的狀態(tài)

最近發(fā)布了的一些變更給了流水線編輯者新的工具以改善在 Blue Ocean 中的流水線可視化,有一個備受矚目關(guān)注的工單JENKINS-39203,這會導(dǎo)致當(dāng)流水線的構(gòu)建結(jié)果為不穩(wěn)定時所有的階段都被設(shè)置為不穩(wěn)定的。這個缺陷導(dǎo)致無法快速地識別為什么構(gòu)建是不穩(wěn)定的,使得用戶必須查看完整的日志和 Jenkinsfile 才能弄明白究竟發(fā)生了什么。

為了修復(fù)這個問題,我們引入了一個新的流水線 API 用于為單個流水線步驟添加額外的結(jié)果信息。像 Blue Ocean 這樣的可視化工具在決定階段如何顯示時會使用到這新的 API。像 junit 這樣的步驟只能設(shè)置整個構(gòu)建結(jié)果,現(xiàn)在可以通過新的 API 設(shè)置步驟級別的結(jié)果信息。我們創(chuàng)建了新的步驟 unstable 和 warnError,這樣流水線編輯者在更復(fù)雜的場景下仍然可以利用這個新的 API。

該問題涉及到的重要的修復(fù)包含在如下的插件中,它們都需要 Jenkins 2.138.4 以及更新的版本:

  • Pipeline: API 2.34

  • Pipeline: Basic Steps 2.18 (需要同步更新到 Pipeline: Groovy 2.70)

  • Pipeline: Graph Analysis 1.10

  • Pipeline: Declarative 1.3.9

  • Blue Ocean 1.17.0

這里是一條使用了 unstable 步驟的流水線在 Blue Ocean 中的截圖,只會把失敗的階段標(biāo)識為不穩(wěn)定的:

Jenkins可視化階段視圖的改進(jìn)是什么

例子

這里給出一些如何在你的流水線中使用該特性的示例:

  • 使用新的步驟 warnError 用于捕獲錯誤,并把構(gòu)建和階段標(biāo)記為不穩(wěn)定的。 warnError 只需要一個 字符串 的參數(shù),用于當(dāng)捕獲到錯誤時以日志的形式輸出。當(dāng) warnError 捕獲到一個錯誤時,它會記錄該消息以及錯誤,并設(shè)置構(gòu)建和階段的結(jié)果為不穩(wěn)定的。效果如下:

warnError('Script failed!') {
  sh('false')
}
  • 使用新的步驟 unstable 設(shè)置構(gòu)建和階段結(jié)果為不穩(wěn)定的??梢允褂迷摬襟E直接替換 currentBuild.result = 'UNSTABLE',在 warnError 不夠靈活時這會比較有用。步驟 unstable 只需要一個 字符串 參數(shù),當(dāng)該步驟運行時會作為消息。使用的方法如下:

try {
  sh('false')
} catch (ex) {
  unstable('Script failed!')
}
  • JUnit Plugin: 更新到 1.28 或者更高的版本,使得步驟 junit 可以直接把該階段設(shè)置為不穩(wěn)定的。

  • Warnings Next Generation Plugin: 更新到 5.2.0 或者更高的版本,使得步驟 publishIssues 和 recordIssues可以直接把該階段設(shè)置為不穩(wěn)定的。

  • 其他插件: 如果你的流水線被其他插件中的步驟標(biāo)記為不穩(wěn)定的,請(在檢查沒有重復(fù)項后)給該組件提交一個新的 issue,清晰地描述哪個步驟是有問題的,以及發(fā)生問題的環(huán)境,并添加鏈接到該文章的開發(fā)者區(qū)域,以便維護(hù)者了解如何才能解決該問題。

局限

  • 如果你不遷移到 unstable 或 warnError 步驟,或不升級插件到集成來新 API 的情況下設(shè)置構(gòu)建狀態(tài),那么即使構(gòu)建是不穩(wěn)定的,Blue Ocean 也不會把任何階段顯示為不穩(wěn)定的。

  • 即使在這些變化后,currentBuild.result 繼續(xù)只會覆蓋構(gòu)建狀態(tài)。不幸的是,由于 currentBuild 是作為全局變量而實現(xiàn)的,因此,無法讓它設(shè)置步驟或者階段級別的結(jié)果,這意味這它沒有任何步驟級別的上下文可以使用到新的 API。

  • Pipeline Stage View Plugin 尚未升級到使用這個新的 API,因此,這些變更不會在它提供的可視化中得到體現(xiàn)。

歷史

Jenkins 流水線步驟可以以兩種方式完成:成功并返回一個結(jié)果(可能為 null),或者是失敗的,并拋出一個異常。當(dāng)步驟失敗并拋出異常時,該異常會貫穿整個流水線,直到有其他的步驟或者 Groovy 代碼捕獲,或者它到達(dá)流水線的頂層并導(dǎo)致流水線失敗?;趻伋龅漠惓5牟煌愋?,流水線最終的結(jié)果可能不是失?。ɡ纾耗承┣闆r下是被終止的)?;诋惓鞑サ姆绞?,像 Blue Ocean 這樣的工具可以輕松地識別哪些步驟(以及階段)是失敗的。

為了能夠讓流水線能夠與相應(yīng)的 Jenkins API 交互,對于流水線構(gòu)建來說,可以在構(gòu)建期間修改構(gòu)建結(jié)果也是有必要的。對于其他的,這使得流水線可以使用構(gòu)建步驟以及原先出自于自由風(fēng)格的任務(wù)中的項目。

在一些情況下,一個流水線步驟需要能夠成功地完成,以便流水線可以繼續(xù)正常執(zhí)行,但對此而言能夠標(biāo)記有某種錯誤發(fā)生,因此,在可視化時能夠識別到發(fā)生錯誤的步驟,即使沒有徹底失敗。比較好的一個例子就是 junit 步驟。該步驟關(guān)注特定的測試結(jié)果,如果有任何錯誤,會把整個構(gòu)建結(jié)果標(biāo)記為不穩(wěn)定的。這種行為對類似 BlueOcean 的可視化工具而言是有問題的,因為該步驟是成功的,而且無法通過編程的方式覆蓋于該步驟相關(guān)的最終結(jié)果。

再次查看下 JENKINS-39203,我們看到關(guān)于可視化有兩項基本的選項。因為有的步驟導(dǎo)致構(gòu)建變成不穩(wěn)定的,設(shè)置總體的構(gòu)建結(jié)果是不穩(wěn)定的,或者所有的步驟都成功完成來也展示為不穩(wěn)定的;或者由于我們沒有辦法把特定步驟相關(guān)的構(gòu)建結(jié)果作設(shè)置,它們可能顯示為成功的。最后,選擇了第一個選項。

為了解決該問題,部分用戶嘗試通過拋出異常并在階段中增加 try/catch 這樣的代碼塊用于處理異常,這樣 Blue Ocean 能夠借助這些異常來標(biāo)記步驟和階段的結(jié)果為期望的狀態(tài),而且,捕獲異常后,流水線可以繼續(xù)正常執(zhí)行。這種方式不容易理解,脆弱,而且無法在申明式的流水線中使用。

    以上是“Jenkins可視化階段視圖的改進(jìn)是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


    網(wǎng)頁標(biāo)題:Jenkins可視化階段視圖的改進(jìn)是什么
    網(wǎng)頁地址:http://weahome.cn/article/iepdsi.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部