首頁

目前文章總數:157 篇

  

最後更新:2024年 12月 07日

0013. Jenkins 適合於 Jenkins 版本 2.426.3 以前的 Pipeline 可視化插件 Blue Ocean

日期:2024年 08月 10日

標籤: BlueOcean Git GitHub Jenkins Pipeline(Groovy) Continuous Integration(CI) Continuous Deployment(CD)

摘要:Jenkins


應用所需:1. jenkins 主機(本篇容器化 Linux debian 12 作業系統)
     2. Jenkins admin 管理員權限(需要安裝插件權限)
補充說明:至 2023/7 月以後,Blue Ocean 已停止大更新,如果是早期的 Jenkins 版本(2.426.3 以前),仍可以使用
解決問題:1. 安裝 Jenkins Blue Ocean 插件,增加"開發者"體驗,撰寫 Pipeline 腳本、變為可視化效果。
基本介紹:本篇分為4大部分。
第一部分:Blue Ocean 介紹
第二部分:安裝 Blue Ocean 的效果
第三部分:Blue Ocean 創建 Pipeline
第四部分:發展狀況 - Pipeline Graph View






第一部分:Blue Ocean 介紹

Step 1:套件介紹

來自 Jenkins 插件的 Blue Ocean 說明

Blue Ocean rethinks the Jenkins user experience.
Designed from the ground up for Jenkins Pipeline and compatible with Freestyle jobs, 
Blue Ocean reduces clutter and increases clarity for every member of your team through the following key features:


大意是說:此插件適用於 Jenkins Pipeline 可視化(UI),提高開發成員的生產力,避免混亂
Blue Ocean Github 開源網址
官方中文參考網站

Step 2:優點說明

優點有以下:

1. 可視化 對持續交付(CD)Pipeline 進行複雜的可視化,使軟體 Pipeline 狀態的快速和直觀理解成為可能。
2. 創建 Pipeline 工具 Pipeline 編輯器通過引導使用者通過直觀和可視化的過程來創建 Pipeline ,使自動化 CD Pipeline 變得容易。
3. 可選擇使用介面 個性化 Jenkins 使用者介面,以滿足每個 DevOps 團隊成員的基於角色的需求
4. 錯誤凸顯 當需要干預和/或出現問題時,精確定位。Blue Ocean 使用者介面顯示 Pipeline 中需要關注的部分,促進異常處理並提高生產力。
5. 整合請求 與分支和拉取請求的原生集成,在 GitHub 和 Bitbucket 上與他人協作編寫程式碼時,最大限度地提高開發人員的生產力。



Step 3:什麼情況可使用 BlueOcean

1. 團隊習慣 如果是 Jenkins 早期開發者可能都習慣於 Blue Ocean
2. Jenkins版本 Blue Ocean 約在2017, 2018年誕生,如果 Jenkins 無法升級到最新版本 (Jenkins 版本在 2.100 ~ 2.426.3)


2023年底 Pipeline Graph View 套件已經漸漸取代 Blue Ocean 在安裝最新版 Jenkins 時就會預設安裝。



第二部分:安裝 Blue Ocean 的效果

Step 1:經典 PipeLine Job

經典的 Jenkins Pipeline Job 並沒有可視化,排錯只能用肉眼,對於開發者與管理者很不方便。
以下有一個 GitFlowExampleMain 的 Pipeline Job

Step 2:經典 PipeLine Job - 進入Job

看 Job 內容可以發現一片空白,Jenkins 預設 Pipeline 是沒有可視化功能

Step 3:經典 PipeLine Job - 排錯方式

要排查建置過程是否有錯誤,只能從 Console log 中用肉眼掃描,或者下 Ctrl + F ,很不友善

Step 4:安裝 Blue Ocean - 1

依序選擇 管理 Jenkins -> Plugins -> Available plugins -> 搜尋 Blue Ocean
選擇安裝整合版本的,如圖:

Step 5:安裝 Blue Ocean - 2

整合包會將所有 Blue Ocean 安裝齊全

Step 6:安裝完成 - 重啟 Jenkins

可以於 Jenkins URL 中輸入 restart 重啟 (選擇’是’)

http:\\localhost:8080\restart


或者將機器重啟 (此為 Windows Desktop For Docker 因此重啟容器)

Step 7:安裝完成 - 重新登入

登入後,左側多了一個按鈕,使用者可以依照自己喜好切換到 Blue Ocean 介面

Step 8:切換到 Blue Ocean

切換到 Blue Ocean 後,點擊剛剛的 Pipeline Job

Step 9:可視化 PipeLine - 1

可以看到建置過程,已經變為可視化,當有錯的時候可以看那個節點有異常

Step 10:可視化 PipeLine - 2

點擊節點後,也可以展開執行內容的過程



第三部分:Blue Ocean 創建 Pipeline

Step 1:回到首頁 - 創建流水線

回到首頁 -> 右側創建流水線 -> 點擊

Step 2:創建流水線 - Source - 1

這邊為了說明,使用之前 GitFlow 的Public Repository
選擇 Git 方式

Step 3:回到首頁 - Source - 2

填上正確資訊後,選擇創建流水線

Step 4:建立完成

一個屬於 MutiBranch Pipeline Job 會進行 Scan 分支,並且快速建立完成

Step 5:自動建置

並且稍等下,會立刻自動進行建置,完成流水線創建

Step 6:補充說明原理

之所以可以自動創建,是需要先在 Repository 下保存 Jenkinsfile 檔案,將 Groovy 腳本放入
腳本內容:

pipeline {
    agent any

    stages {
        stage('Git Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/gotoa1234/GitFlowTemplate.git'
                
                sh """
                   git checkout ${params.GIT_HASH}
                """
            }
        }

        stage('Building') {
            steps {
                 script {
                    sh """
                    dotnet build GitFlowWebSiteExample/GitFlowWebSiteExample.csproj -c Release -o GitFlowWebSiteExample/publish/GitFlowWebSiteExamplePackage
                    """
                }
            }
        }

        stage('Test') {
            parallel {
                stage('Test-A') {
                    steps {
                        // 測試命令 - 假裝自動化測試
                        echo "Test-A running tests... (Mock)"
                    }
                }
                stage('Test-B') {
                    steps {
                        // 測試命令 - 假裝自動化測試
                        echo "Test-B running tests... (Mock)"
                    }
                }
                stage('Test-C') {
                    steps {
                        // 測試命令 - 假裝自動化測試
                        echo "Test-C running tests... (Mock)"
                    }
                }
            }
        }
    }

    post {
        always {
            echo 'This will always run'
        }
        success {
            echo 'This will run only if successful'
        }
        failure {
            echo 'This will run only if failed'
        }
    }
}





第四部分:發展狀況 - Pipeline Graph View

Step 1:萃取 Blue Ocean 精華

在 Jenkins 2.452.1 以上都會預設安裝 Pipeline Graph View 套件
以下說明來源於 Pipeline Graph View 插件

Vision
This plugin aims to bring the best of Blue Ocean into the regular Jenkins UI.

That means functionality like:

 Pipeline graph
 Summary of runs in a job (like Pipeline Stage View Plugin, but simpler, more modern and more performant)
 Modern logs viewing
The plugin should be lightweight, using or providing extension points where possible rather than building everything into one plugin.



Step 2:可視化 - 1

Pipeline Graph View 融合 Jenkins 經典 + Blue Ocean 有以下畫面
並且可以點擊節點 (Test 為例)

Step 3:可視化 - 2

Pipeline Graph View 也可以展開資料內容,檢視建置過程:

Step 4:創建流水線

Pipeline Graph View 也有 Blue Ocean 的創建流水線
Jenkins 首頁 -> 建立一個新 Job -> MultiBranch Pipeline

Step 5:感謝 Blue Ocean 的貢獻者們

貢獻者