4.5.1、最终效果如下

触发自动构建部署后发送邮件

4.5、gitlab提交流水线优化-添加邮件请求 - 图1

4.5.2、编写邮件共享库

  1. 文件目录名:src/org/devops/toemail.groovy
  2. --Jenkins图标地址:<img src="http://47.93.249.164:8888/static/0eef74bf/images/headshot.png">
  3. =================================================================================================
  4. package org.devops
  5. //定义邮件内容
  6. def Email(status,emailUser){
  7. emailext body: """
  8. <!DOCTYPE html>
  9. <html>
  10. <head>
  11. <meta charset="UTF-8">
  12. </head>
  13. <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
  14. <img src="http://47.93.249.164:8888/static/0eef74bf/images/headshot.png">
  15. <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
  16. <tr>
  17. <td><br />
  18. <b><font color="#0B610B">构建信息</font></b>
  19. </td>
  20. </tr>
  21. <tr>
  22. <td>
  23. <ul>
  24. <li>项目名称:${JOB_NAME}</li>
  25. <li>构建编号:${BUILD_ID}</li>
  26. <li>构建状态: ${status} </li>
  27. <li>项目地址:<a href="${BUILD_URL}">${BUILD_URL}</a></li>
  28. <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
  29. </ul>
  30. </td>
  31. </tr>
  32. <tr>
  33. </table>
  34. </body>
  35. </html> """,
  36. subject: "Jenkins-${JOB_NAME}项目构建信息 ",
  37. to: emailUser
  38. }

4.5.3、编写Jenkinsfile调用邮件共享库

  1. 文件名:Jenkinsfile
  2. #!groovy
  3. //引用Library库
  4. @Library('jenkinslib@master') _
  5. //引用构建共享库
  6. def build = new org.devops.build()
  7. //引入发布共享库
  8. def toemail = new org.devops.toemail()
  9. String srcUrl = "${env.srcUrl}" //引用参数
  10. String branchName = "${env.branchName}" //引用参数
  11. String buildType = "${env.buildType}" //引用参数
  12. String buildShell = "${env.buildShell}" //引用参数
  13. String user_email = "${env.user_email}" //引用参数
  14. pipeline {
  15. agent {
  16. node {
  17. label "master" //构建主机
  18. }
  19. }
  20. stages {
  21. //下载代码
  22. stage("CheckOut") {
  23. steps {
  24. script {
  25. checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitlabpwd', url: "${srcUrl}"]]])
  26. }
  27. }
  28. }
  29. stage("Build") {
  30. steps {
  31. script {
  32. //引入构建共享库内函数
  33. build.Build(buildType,buildShell)
  34. //引用发布共享库内函数
  35. }
  36. }
  37. }
  38. }
  39. post {
  40. always{
  41. script{
  42. println("流水线结束后,经常做的事情")
  43. }
  44. }
  45. success{
  46. script{
  47. println("流水线成功后,要做的事情")
  48. toemail.Email("流水线构建成功",user_email)
  49. }
  50. }
  51. failure{
  52. script{
  53. println("流水线失败后,要做的事情")
  54. toemail.Email("流水线构建失败",user_email)
  55. }
  56. }
  57. aborted{
  58. script{
  59. println("流水线取消后,要做的事情")
  60. toemail.Email("流水线构建取消",user_email)
  61. }
  62. }
  63. }
  64. }

4.5.4、gitlab配置邮箱

gitlab配置的邮箱为代码提交者的邮箱,目的是为了提醒开发人员提交代码后Jenkins构建是否成功。一般每创建一个用户,都需要为该用户添加一个邮箱。

4.5.4.1、新建用户

4.5、gitlab提交流水线优化-添加邮件请求 - 图2

4.5、gitlab提交流水线优化-添加邮件请求 - 图3

4.5、gitlab提交流水线优化-添加邮件请求 - 图4

4.5、gitlab提交流水线优化-添加邮件请求 - 图5

4.5.4.2、项目设置权限

4.5、gitlab提交流水线优化-添加邮件请求 - 图6

4.5、gitlab提交流水线优化-添加邮件请求 - 图7

4.5、gitlab提交流水线优化-添加邮件请求 - 图8

wangyueying用户只能看到刚刚设置权限的两个仓库

4.5、gitlab提交流水线优化-添加邮件请求 - 图9

4.5.4.3、王越颖用户自行设置邮箱地址

4.5、gitlab提交流水线优化-添加邮件请求 - 图10

4.5.5、Jenkins配置

4.5.5.1、Jenkins插件安装

  1. Email Extension Template
  2. Email Extension Plugin

4.5.5.2、Jenkins项目配置

其他按照4.1/4.2/4.3/4.4配置

4.5、gitlab提交流水线优化-添加邮件请求 - 图11

4.5.5.3、Jenkins系统管理配置添加邮件服务器

4.5、gitlab提交流水线优化-添加邮件请求 - 图12

4.5、gitlab提交流水线优化-添加邮件请求 - 图13

password为邮件的授权码

4.5.6、gitlab代码提交

触发自动构建

4.5、gitlab提交流水线优化-添加邮件请求 - 图14

4.5、gitlab提交流水线优化-添加邮件请求 - 图15

4.5.7、验证结果

4.5、gitlab提交流水线优化-添加邮件请求 - 图16