网站首页 > 博客文章 正文
本文同步本人掘金平台的文章:https://juejin.cn/post/7062327576395513887
上一篇,Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建 我们已经实现了自动构建的功能。
在团队合作中,项目在构建异常「或成功」时候,需要邮件通知相关的人员,这就涉及到 Jenkins 邮件发送的功能了。
安装 Email Extension
Email Extension 插件允许你配置邮件通知。通过此插件,你可以自定义邮件的发送人,接受者和发送的内容。
Manage Jenkins -> Manage Plugins -> Available 。搜索 Email Extension 安装
配置 Email Extension 参数
Manage Jenkins -> Configure System -> Extended E-mail Notification
第 1 点: Simple Mail Transfer Protocol (SMTP) 自己申请,如果不知道如何操作,请网上找答案。(应该也许不难吧...)
第 2 点: 邮件默认的接收邮件地址。
构建脚本
使用Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建的Jenkinsfile脚本补充下。
pipeline {
agent any
tools {
nodejs "nodejs"
}
stages {
stage('Dependency') {
steps {
sh 'npm install'
}
}
stage('Build') {
steps {
sh 'npm run clean'
sh 'npm run build'
}
}
}
// 添加的脚本内容
post {
always {
emailext body: '${DEFAULT_CONTENT}',
subject: '${DEFAULT_SUBJECT}',
to: '${DEFAULT_RECIPIENTS}',
from: '${env.DEFAULT_FROM_EMAIL}'
}
}
}
复制代码
这就很明显了:默认发送邮箱,默认接收邮箱,默认的发送主题,默认的发送内容。都是获取我们上一步设定的值。效果如下:
构建失败:
构建成功:
对比上面的两张图,构建失败和构建成功,的构建结果字体竟然是不同的颜色,神奇...
如果你看上一节配置 Email Extension 参数中的截图,你可能会留意到:
<h2><font color="${BUILD_STATUS}">构建结果 - ${BUILD_STATUS}</font></h2>
复制代码
color="${BUILD_STATUS}" 嗯,加上这个,不同状态返回的构建结果字体不同颜色了?我们带动下构建pipeline的always -> changed。触发构建信息由失败 -> 成功,得到下面的结果:
看来是想多了啊,并不是不同的状态不同颜色啊。不过,如果你不介意这个bug,可以使用...
升级下需求
发送邮件需要根据不同状态,使用特定的颜色区分。比如:成功 -> #27AE60 , 失败 -> #E74C3C , 其他颜色 -> #F4E242
咦,这还不简单?在默认的发送模版上添加判断条件就行了。
然而,不支持,太惨了,得另辟蹊径~(大雾)
经过一番搜索,Groovy Template 能够解决这个问题。
我们更改下 pipeline 脚本:
# ...
post {
always {
emailext body: '''${SCRIPT, template="my-email-template"}''',
subject: '${DEFAULT_SUBJECT}',
to: '${DEFAULT_RECIPIENTS}',
from: "${env.DEFAULT_FROM_EMAIL}"
}
}
# ...
复制代码
我们构建下。构建是成功了,但是邮箱收到的却是:
Groovy Template file [my-email-template] was not found in $JENKINS_HOME/email-templates.
复制代码
邮件提示,机器中 $JENKINS_HOME/email-templates 下并不存在 my-email-template 模版。(笑哭)
没有权限怎么办呢?咱可以通过其他方法不?
再查找资料,咦,有了 - Email Extension Plugin is not loading groovy template added via Config File Provider Plugin。通过配置文件解决,我们来见证下:
步骤 1 : 到 jenkins 平台上操作,Manage Jenkins -> Managed Files
步骤 2 : 点击 Add a new Config
步骤 3 : 点选类型 Extended Email Publisher Groovy Template, 点击 Submit 按钮提交
步骤 4 : 输入名称和相关的内容。请记住名称,后续使用到。
因为截图篇幅问题,这里的 Content 内容并没有截取完整,完整的内容请戳Groovy_template.html,其中的关键代码如下:
.tr-title {
background-color: <%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#F4E242' %>;
}
复制代码
Groovy 官方完整模版请见官方模版Groovy Email Template
扎心了啊,老铁(尬笑)
步骤 5 : 修正你的 pipeline 文件,请确保你输入和正确的名字"managed:Groovy Email Template"。
# ...
post {
changed {
emailext body: '''${SCRIPT, template="managed:Groovy Email Template"}''',
subject: '${DEFAULT_SUBJECT}',
to: '${DEFAULT_RECIPIENTS}',
from: "${env.DEFAULT_FROM_EMAIL}"
}
}
# ...
复制代码
一切就绪,我们重新构建。结果如下:
构建状态 | 邮箱收到内容截图 |
成功 | |
失败 | |
中止 |
嗯~效果不错(撒花)完结
读者有啥其他的方法呢,可以留言交流下。更多的内容,请戳Jimmy Github Blog
文章被收录于专栏:
相关课程
3
收藏
猜你喜欢
- 2024-09-20 Pipeline+Jenkins流水线构建(jenkins工作流)
- 2024-09-20 用代码描述流水线-Jenkins Pipeline 详解
- 2024-09-20 「博文精选」Jenkins pipeline控制并行执行job个数
- 2024-09-20 微服务从代码到k8s部署应有尽有大结局(k8s部署)
- 2024-09-20 持续集成工具 Jenkins 的使用(jenkins持续集成自动化测试)
- 2024-09-20 测试开发丨从零开始,手把手教你在Jenkins中创建Pipeline Job!
- 2024-09-20 Jenkins Pipeline 部署 Kubernetes 应用
- 2024-09-20 Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建
- 2024-09-20 别再用jenkins freestyle了,教你快速编写jenksinfile,离线调试
- 2024-09-20 Jenkins 持续集成企业实战示例(jenkins持续集成原理)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)