Docker+Jenkins+Pipeline实现持续集成(三)更多配置

基本流程走通后,我们还可以为项目增加webhook、文件存档、邮件发送、声音提示等配置

插件推荐

插件名作用
Gitlab代码提交到Gitlab上后自动触发Jenkins构建
Jenkins Email Extension Plugin可定制化的发送邮件
Sounds Plugin构建前/后发出声音提示
HTTP Request Plugin能够发送HTTP请求
Build Monitor View为Jenkins新建监控视图,便于在大屏幕上显示项目构建进度

添加gitlab的webhook

当开发人员push代码到gitlab上时,我们想要立即触发一次Jenkins构建,因此需要添加gitlab的webhook。
方案1
(1)在项目配置里找到”构建触发器“,勾选Poll SCM,但不用填写日程表(使用cron格式填写日程表的话,会定时查询git仓库是否有变更,如果有则自动构建,但不会因为push而自动触发构建)
(2)然后拥有项目git管理权限的人员,进入需要接入Jenkins的git项目,点击Settings,点击页面左侧的WebHooks,在url的输入框中输入http://<jenkins_server>/git/notifyCommit?url=<git仓库地址>[&branches=分支名1,分支名2]后,点击AddWebHook,即添加成功webhook,如下图所示:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 git中添加webhook

(3)当webhook设置后,需要手动构建一次项目,否则webhook不会被识别到;且每一次修改pipeline中的gitlab仓库信息时,都需要进行一次手动构建。

方案2

方案1有一个缺陷,只能在分支提交时触发自动构建,而且当一个项目push代码后,所有拉取该项目代码的jenkins都会被自动构建。因此如果需要更强大灵活的webhook,可以参考方案2。

(1)下载插件
Gitlab

(2)进入项目配置页,可以看到在
构建触发器中新增了
Build when a change is pushed to Gitlab一项,如下图

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 Webhook配置

点击
更多能够看到构建分支等等更多配置,如下图:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 Webhook配置

(3)gitlab中添加Webhook

项目管理人员进入git项目中,点击
Settings——
Integrations,进入到Webhook的添加页面。将(2)中的webhook url以及Secret Token填写到后,选择相应的trigger事件即可,如下图:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 gitlab中添加webhook

文件存档

当使用mvn进行单元测试或打包构建后,我们想要获取测试报告或者二进制包,因此需要将这些文件进行存档。
使用archiveArtifacts可以获得任意满足条件的文件,使用junit可以针对xml格式的测试报告进行存档,如下:

    archiveArtifacts 'target/*jar'
    junit '**/target/surefire-reports/TEST-*.xml'

构建后,可以在Stage View中的箭头处对文档进行查看下载。

邮件发送

这里主要介绍两种邮件的发送方法,一个是Jenkins自带的邮件发送,一个是插件Jenkins Email Extension Plugin提供的邮件发送。推荐使用第二种方法,可以定制复杂的邮件发送格式,更加灵活、强大。
1.Jenkins自带的邮件通知的配置
进入系统管理——系统设置中,找到Jenkins Location项,配置其中的系统管理员邮件地址,如下图所示:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 配置系统管理员邮件地址

然后找到
邮件通知项,配置发送邮件的SMTP服务器和用户认证,如下图所示

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 配置SMTP认证

配置成功后,即可在Pipeline中添加邮件发送语句,格式为:

mail body: "", subject: "", to: ""

2.使用插件发送邮件
下载插件Jenkins Email Extension Plugin
进入系统管理——系统设置中,找到Extended E-mail Notification项,如下图所示配置SMTP服务器和用户认证:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 配置STMP认证

并且可以配置邮件的
Default Subject
Default Content(模板见下篇),然后在邮件发送时用变量
DEFAULT_SUBJECT
DEFAULT_CONTENT进行调用,在pipeline中发送邮件的格式如下:

     emailext attachlog:true, body: ‘$DEFAULT_CONTENT’, subject: ‘$DEFAULT_SUBJECT’, to: ‘xxxx@****.com' 

声音提示

下载插件Sounds PluginHTTP Request Plugin
插件安装后,首页右侧会出现Sounds图标,点击可以进入Sounds页面测试声音是否能够正常发出,如下图:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 Sound插件

可以看到,Sounds提供了两种声音访问的形式:一个是插件自带的音效即
Play sound from internal sound archive,但是这种方式只能在
freestyle的项目中使用;另一种方式是通过发送HTTP请求的方式,一旦请求成功,音效就在所有打开Jenkins的浏览器中响起(可在
系统管理——
系统设置——
Jenkins Sounds中更改),请求的url格式为
http://jenkins_server/sounds/playSound?src=<URL>,其中,src的值为在jenkins服务器中的文件地址或一个http的url。

例如,我们在Jenkins的容器中,下载一段音频(wget http://xmdx.sc.chinaz.com/Files/DownLoad/sound1/201712/9563.wav)存放在/var/jenkins_home/sounds/文件夹下,那么我们可以通过URL http://localhost:8080/sounds/playSound?src=file:///var/jenkins_home/sounds/9563.wav来触发音效的播放。在Pipeline中,我们利用插件HTTP Request Plugin进行http请求的发送,语法生成配置如下:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 Sounds消息发送语法生成

因此,pipeline中发送声音请求的语句如下(soundsId即Jenkins管理员的账号密码认证ID):

httpRequest authentication:"${soundsId}", url:"http://localhost:8080/sounds/playSound?src=file:///var/jenkins_home/sounds/9563.wav"

监控视图

常规的jenkins视图并不利于实时监控,只有一个小小的图标表示项目构建成功还是失败,失败后也没有更详细的信息,因此可以使用监控视图,适合投屏到大屏幕上对项目的构建进行实时监控。
(1)下载插件Build Monitor View
(2)添加新的视图:在Jenkins的首页,所有项目上方的视图选择tab中点击+后可新建视图,如下:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 添加新视图1

然后在视图新建页面中选择
Build Monitor View、填写视图名称后,点击
OK

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 添加新视图2

然后进入视图的配置页面,选择需要添加到视图中的项目,或者配置过滤规则后,点击
保存,即可在首页看到该新视图

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 新视图

(3)实时监控构建情况

点击进入新视图就可以实时查看构建情况:红色表示构建失败、绿色表示构建成功、灰色表示构建中断;而且能够看到时间、构建趋势等等、git提交人等等多个信息。如下是官方的效果展示图:

《Docker+Jenkins+Pipeline实现持续集成(三)更多配置》 图片.png

    原文作者:禾苗zj
    原文地址: https://www.jianshu.com/p/75d9c749b2dd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞