查看原文
其他

使用Jenkins Dashboard插件可视化部署

使用Jenkins可视化部署


插件地址:https://plugins.jenkins.io/deploy-dashboard/   插件名称:Deploy Dashboard by Namecheap


您是否曾经问过自己或您的同事“开发环境中当前部署了哪个版本?” 或“昨天将修补程序部署到生产了吗?” 或“我们的客户两天前遇到了一个错误。您还记得当时部署的版本吗?”。

如果经常出现诸如此类的问题,并且您使用Jenkins进行其CI / CD处理,那么此插件绝对适合您!

在敏捷开发领域,我们必须非常频繁地更新软件应用程序。每个版本都应部署到众多环境中。最终,当我们谈论将哪个版本部署到哪个环境时,情况变得一团糟。将整体部署状态放在一个地方会很好,对吗?

在Namecheap,我们将Jenkins用于CI/CD。因此,我们决定通过编写一个名为Deploy Dashboard的Jenkins插件来确保始终检查每个部署状态。

在本文中,我将向您展示该插件的功能以及如何使用它。

使用Deploy Dashboard进行可视化

首先,我们想知道哪些代码发布版本已部署到哪些测试和生产环境(或设备)。为了实现此目标,我们制作了一个自定义视图,用作仪表板。

此外,可以通过单击特定环境查看发布历史。


入门:将新版本添加到仪表板

假设您已经有一个Jenkins作业可以构建和部署您的应用程序。您唯一要做的就是addDeployToDashboard使用环境名称和应用程序版本参数调用该方法。

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 dashboard addDeployToDashboard( env: params.env, buildNumber: params.version ) }}

创建仪表板

在Jenkins主页或文件夹上,单击+选项卡以启动新视图向导(如果看不到+,则可能是您无权创建新视图)。

在“创建新视图”页面上,为视图命名,然后选择“部署视图”类型,然后单击“确定”。

正则表达式可用于指定要包含在视图中的作业。(例如:“ .*”将选择文件夹中的所有作业)。


将部署按钮添加到您的版本

在某些情况下,您希望将CI管道与CD分开保存。在这种情况下,Deploy Dashboard Plugin允许您向构建侧边栏添加其他按钮。您应该只调用buildAddUrl带有标题和URL地址的方法。

node { stage("Build") { String builtVersion = "v2.7.5" // Build app with ${builtVersion} version //Add buttons to the left sidebar buildAddUrl(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}") }}

此功能对于质量检查团队非常有用。只需单击几下,他们就可以将任何现有版本部署到其环境中。我希望它有助于改善您对Jenkins的体验!欢迎您为GitHub中的项目做出贡献。


声明式脚本

pipeline { agent any parameters { 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 ) } } } }}


关于我们

DevOps云学堂,一个盛满新技术实践的学习平台。技术开放交流,技术实践实施分享。目前课程正在进一步覆盖DevOps全流程!

我们开放的资源:DevOps开源实践文档、技术交流圈、FAQ文档库。扫码关注公众号,回复“devops”免费获取。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存