书山有路勤为径,学海无涯苦作舟。 知识改变命运,行动创造未来。

Jenkins消息通知与协作

本篇文章主要讲解 Mattermost + Jenkins实现消息传递和CI / CD管道之间的协作。

Mattermost + Jenkins 集成

使用Mattermost的Jenkins插件,您可以自动设置Mattermost中基于Jenkins活动的通知,并使用斜杠与Jenkins互动的命令。 Mattermost让您的团队使用CI / CD工作流程中的现代消息传递以集中化沟通,节省时间并提高可见性和透明度。

通过Mattermost中的斜杠命令与作业进行交互以:

  • 与Jenkins服务器连接和断开连接
  • 与Jenkins作业进行交互-创建,触发,启用,禁用或删除; 中止构建或获取构建日志; 或获取工件或测试日志
  • 与插件互动
  • 运行临时命令(例如安全重启)或获取帮助

images

添加Jenkins集成插件

点击团队,进入Plugin Marketplace。

images

搜索关键字"Jenkins”,然后安装配置此插件。

images

添加jenkins服务器的链接、启动此插件。

images

插件源码:https://github.com/mattermost/mattermost-plugin-jenkins 您也可以通过github下载release包手动安装插件。


测试Mattermost 集成Jenkins

随意进入一个频道,然后输入/jenkins 查看集成的命令。

images

这是一份操作指南,可以根据提示触发Jenkins操作。

images

/jenkins connect username APIToken ## 连接Jenkins服务器
/jenkins disconnect ## 断开服务器连接接
/jenkins createjob  ## 创建一个项目(需要config.xml)
/jenkins build jobname  ##触发项目构建
/jenkins abort jobname <build number> ## 取消项目构建
/jenkins enable jobname 							## 启用一个项目
/jenkins disable jobname 							## 禁用一个项目
/jenkins delete jobname 							## 删除一个项目
/jenkins get-artifacts jobname 				## 获取项目制品
/jenkins test-results jobname 				## 获取测试结果
/jenkins get-log jobname <build number>  ## 获取构建日志
/jenkins plugins 				## 获取插件列表
/jenkins safe-restart 	## 重启服务
/jenkins me 		## 显示我的认证信息
/jenkins help  ## 帮助信息 

连接服务器,需要创建用户的apitoken。进入jenkins,用户配置,生成APIToken。

iamges

/jenkins connect zeyangli 11b124fe0690f39f0ed2a55d9bf62bdcbd 出现此信息说明连接成功。如果此处出现问题一般是因为网络或者账号信息问题导致的。

images

构建一个项目

images

获取项目构建日志

images


Jenkins流水线中添加消息传递

进入插件管理,搜索“mattermost” 安装此插件。

images

添加webhook,参考文档:https://docs.mattermost.com/developer/webhooks-incoming.html

images

配置好hook之后会生成一个hook url复制保存,到后续流水线中使用。

images

生成pipeline

images

pipeline {
   agent any

   stages {
      stage('Hello') {
         steps {
             script{
                 mattermostSend channel: '#town-square', 
                                color: '#439FE0', 
                                endpoint: 'http://xxxx/hooks/bix8xjcb9byefj6rioht1ymrpo', 
                                message: "Build Started: ${env.JOB_NAME} ${env.BUILD_NUMBER}", 
                                text: '@young'
                                
                echo 'Hello World'
                sleep 10;
             }
            
         }
      }
   }
}

构建测试,能够正常收到消息则成功了。后续通知消息根据自定义即可。

images

插件源码:https://github.com/jenkinsci/mattermost-plugin