使用Jenkins Dashboard插件可視化部署
使用Jenkins可視化部署
插件地址:https://plugins.jenkins.io/deploy-dashboard/ ? 插件名稱:Deploy Dashboard by Namecheap

您是否曾經(jīng)問過自己或您的同事“開發(fā)環(huán)境中當前部署了哪個版本?” 或“昨天將修補程序部署到生產(chǎn)了嗎?” 或“我們的客戶兩天前遇到了一個錯誤。您還記得當時部署的版本嗎?”。
如果經(jīng)常出現(xiàn)諸如此類的問題,并且您使用Jenkins進行其CI / CD處理,那么此插件絕對適合您!
在敏捷開發(fā)領(lǐng)域,我們必須非常頻繁地更新軟件應(yīng)用程序。每個版本都應(yīng)部署到眾多環(huán)境中。最終,當我們談?wù)搶⒛膫€版本部署到哪個環(huán)境時,情況變得一團糟。將整體部署狀態(tài)放在一個地方會很好,對嗎?
在Namecheap,我們將Jenkins用于CI/CD。因此,我們決定通過編寫一個名為Deploy Dashboard的Jenkins插件來確保始終檢查每個部署狀態(tài)。
在本文中,我將向您展示該插件的功能以及如何使用它。
使用Deploy Dashboard進行可視化
首先,我們想知道哪些代碼發(fā)布版本已部署到哪些測試和生產(chǎn)環(huán)境(或設(shè)備)。為了實現(xiàn)此目標,我們制作了一個自定義視圖,用作儀表板。

此外,可以通過單擊特定環(huán)境查看發(fā)布歷史。

入門:將新版本添加到儀表板
假設(shè)您已經(jīng)有一個Jenkins作業(yè)可以構(gòu)建和部署您的應(yīng)用程序。您唯一要做的就是addDeployToDashboard使用環(huán)境名稱和應(yīng)用程序版本參數(shù)調(diào)用該方法。
properties([parameters([string(name: 'version', description: 'App version to deploy'),choice(name: 'env',choices: ['dev', 'prod'],description: 'Environment where the app should be deployed')])])node {//...stage("Deploy") {// Deploy app version ${params.version} to ${params.env} env//add release information to the dashboardaddDeployToDashboard(env: params.env,buildNumber: params.version)}}
創(chuàng)建儀表板
在Jenkins主頁或文件夾上,單擊+選項卡以啟動新視圖向?qū)Вㄈ绻床坏?,則可能是您無權(quán)創(chuàng)建新視圖)。

在“創(chuàng)建新視圖”頁面上,為視圖命名,然后選擇“部署視圖”類型,然后單擊“確定”。

正則表達式可用于指定要包含在視圖中的作業(yè)。(例如:“ .*”將選擇文件夾中的所有作業(yè))。

將部署按鈕添加到您的版本
在某些情況下,您希望將CI管道與CD分開保存。在這種情況下,Deploy Dashboard Plugin允許您向構(gòu)建側(cè)邊欄添加其他按鈕。您應(yīng)該只調(diào)用buildAddUrl帶有標題和URL地址的方法。
node {stage("Build") {String builtVersion = "v2.7.5"// Build app with ${builtVersion} version//Add buttons to the left sidebarbuildAddUrl(title: 'Deploy to DEV', url: "/job/app-deploy/parambuild/?env=dev&version=${builtVersion}")buildAddUrl(title: 'Deploy to PROD', url: "/job/app-deploy/parambuild/?env=prod&version=${builtVersion}")}}

此功能對于質(zhì)量檢查團隊非常有用。只需單擊幾下,他們就可以將任何現(xiàn)有版本部署到其環(huán)境中。我希望它有助于改善您對Jenkins的體驗!歡迎您為GitHub中的項目做出貢獻。
聲明式腳本
pipeline {agent anyparameters {choice choices: ['dev','prod'], description: '', name: 'env'string defaultValue: '', description: '', name: 'version', trim: false}stages {stage('Hello') {steps {script {addDeployToDashboard(env: params.env,buildNumber: params.version)}}}}}
