Jenkins-解决问题与集成通知

2022-07-25 16:45:07 浏览数 (1)

解决问题与集成通知

目录

  • 1、解决中文乱码
  • 2、解决无法收到邮件
  • 3、解决HTML报告显示不正常
  • 4、集成SLACK实现事件实时通知
  • 5、集成钉钉实现事件实时通知

1、解决中文乱码

以Widnows为例

当Jenkins部署在Tomcat里时,执行Jenkins,Jenkins控制台输出中文会显示乱码。

解决办法:

1、本机系统增加环境变量。

鼠标选中我的电脑右键,点击属性--->高级系统配置--->高级--->环境变量。

点击环境变量,系统变量里:

代码语言:javascript复制
点击新建
变量名填写 JAVA_TOOL_OPTIONS
变量值填写 -Dfile.encoding=UTF-8

2、打开Tomcat安装目录下的bin文件夹,里面有个catalina.bat文件,修改此文件。

代码语言:javascript复制
搜索:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
添加:
-Dfile.encoding=UTF-8
修改后:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF-8"

如图所示:修改后的catalina.bat文件。

3、Jenkins配置环境变量。

系统管理--->系统设置--->全局属性,选中环境变量,添加对应的键值对。

代码语言:javascript复制
键 JAVA_TOOL_OPTIONS 值 -Dfile.encoding=UTF-8
键 LANG 值 zh.CH.UTF-8

如图所示:

2、解决无法收到邮件

一、问题:

系统设置里的邮件通知配置完后发送测试邮件是成功的,并且也能收到邮件。

但是项目构建结束,发送邮件日志,虽然显示已经发送邮件了,但是没有收到邮件。

二、解决:

1、系统设置里的Jenkins Location管理员邮件地址必须与Extended E-mail Notification、邮件通知里的邮件地址一致。

2、重新配置一次Extended E-mail Notification(例如:重新输入一次密码),保存后,再次执行项目就可以收到邮件了。

3、解决HTML报告显示不正常

一、问题:

1、如图所示:项目的测试报告(HTML Report)为.html格式。

2、打开发现报告显示不全,样式丢失。

二、解决:

1、系统管理--->脚本命令行。

2、输入以下参数,点击运行。

代码语言:javascript复制
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

3、再次执行脚本,查看新生成的测试报告,如图所示:显示正常。

4、集成Slack实现事件实时通知

Slack是一个企业内部沟通协作工具,提供群组聊天和直接消息发送功能,支持移动端、Web 和桌面平台。

官方网址:https://slack.com/

Jenkins的Slack插件:https://github.com/jenkinsci/slack-plugin

桌面端下载地址:

Windows:https://slack.com/downloads/windows

Mac:https://slack.com/downloads/mac

Linux:https://slack.com/downloads/linux

移动端下载地址:

iPhone:https://slack.com/downloads/ios

Android:https://slack.com/downloads/android

Windows Phone:https://slack.com/downloads/winphone

1、创建Slack账号

登录官网https://slack.com/,点击GET STARTED。

之后点击Create a new workspace。

输入邮箱地址,之后点击Confirm。

之后邮箱会收到验证码,填写此处。

给公司或团队起个名字,例如MYTEST,点击Next。

给项目起个名字,例如MYTEAM,点击Next。

创建完成,点击See Your Channel in Slack。

进入后界面。

如图所示:MYTEST工作区URL为mytest-wvc8978.slack.com

2、查看Jenkins集成Slack的配置信息

登录网址:https://my.slack.com/services/new/jenkins-ci

如图所示:未登录,则先输入之前已创建的MYTEST工作区URL(mytest-wvc8978.slack.com),之后点击Continue。

之后输入邮箱与密码进行登录即可。

如图所示:已登录,选择频道(之前创建完成的MYTEAM项目),点击Add Jenkins CI integration

如图所示:显示的集成设置信息,频道、Token。

注意:记住设置说明的第3步,Base URL、Integration Token。

之后点击Save Settings即可。

3、在Jenkins中安装Slack插件

登录Jenkins,系统管理--->插件管理,搜索Slack Notification并进行安装。

安装完成后,系统管理--->系统设置--->Global Slack Notifier Settings,填写Slack的配置信息Base URL、Integration Token,其他字段为可选(可不填),最后保存即可。

4、应用到Jenkins项目里

进入Jenkins已创建完成的项目,点击配置,构建后操作添加Slack Notifications。

如图所示:根据需求,勾选不同的通知选项。

注意:可单个任务配置(只针对所设置项目,项目配置里,在Slack Notifications里配置Base URL、Integration Token),也可进行全局设置(所有的项目,在系统管理--->系统设置--->Global Slack Notifier Settings里配置Base URL、Integration Token)。

如图所示:Slack Notifications里Base URL、Integration Token为空,则使用的是全局设置。点击Test Connection,调试配置是否成功。

配置完成后,执行Jenkins项目,消息发送到Slack上。

如图所示:Web网页显示效果。

如图所示:移动端显示效果。

5、集成钉钉实现事件实时通知

钉钉,阿里巴巴出品,专为全球企业打造的免费智能移动办公平台。智能办公电话,消息已读未读,DING消息任务管理,让沟通更高效;移动办公考勤,签到,审批,企业邮箱,企业网盘,企业通讯录,让工作更简单。

官方网址:https://www.dingtalk.com/

PC端、移动端下载地址:https://tms.dingtalk.com/markets/dingtalk/download

1、配置钉钉

打开钉钉PC端,进入某个群(例如TEST群),打开群设置--->群机器人。

注意:如果你不是群主或管理员,且群主开启了仅群主和管理员可管理,那么你将无法创建机器人。

选择自定义机器人。

点击添加。

填写机器人名字(例如:Jenkins消息通知),点击完成。

复制webhook地址(此处将用于Jenkins当中的参数配置)。

如图所示:配置完成后,机器人会默认发送一条消息。

2、配置Jenkins

(1)安装插件

登录Jenkins,系统管理--->管理插件--->可选插件。

搜索:Dingding[钉钉],选中直接安装即可。

搜索:Dingding JSON Pusher,选中直接安装即可。

(2)发送默认消息配置

进入Jenkins某个项目(例如Test),进入配置,构建后操作添加钉钉通知器配置,将之前复制的钉钉webhook地址复制到钉钉access token里。再勾选需要的通知。

代码语言:javascript复制
例如URL为 https://oapi.dingtalk.com/robot/send?access_token=1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9
只需要复制 1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9 即可

注意:Jenkins URL配置中需要在最后添加"/",要不然会导致拼接的Url出错,这里填写有问题会导致无法从钉钉中跳转到Jenkins任务。

保存项目后进行执行,此时钉钉会收到通知信息,点击某个通知,会跳转到Jenkins,登陆后跳转到此项目的构建页面。

如图所示:PC端显示效果。

如同所示:移动端显示效果。

(3)发送自定义消息配置

还是在此项目(Test)进行配置,构建后操作添加Dingding Json Pusher,将之前复制的钉钉webhook地址复制到钉钉access token里。

代码语言:javascript复制
例如URL为 https://oapi.dingtalk.com/robot/send?access_token=1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9
只需要复制 1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9 即可

之后再创建dingding.json文件,Json文件路径填写全路径地址(例如dingding.json文件放到了D盘根目录下)。

dingding.json文件模板内容:

代码语言:javascript复制
{
       "msgtype": "text",
       "text": {
              "content": "在这填写自定义内容"
       }
}

例如填写为:

代码语言:javascript复制
{
       "msgtype": "text",
       "text": {
              "content": "IOS自动打包构建成功!n下载地址:ftp://10.53.29.69/app/ios"
       }
}

保存项目后进行执行,此时钉钉除了可接收默认通知消息,还可接收到自定义通知消息。

如图所示:PC端显示效果。

如同所示:移动端显示效果。

0 人点赞