Jenkins持续集成CI,持续部署CD,Allure报告集成以及发送电子 邮件

文章目录

      • [一、Jenkins 的简介](#一、Jenkins 的简介)
      • 二、Jenkins的安装
      • [三、Jenkins 文件夹的作用](#三、Jenkins 文件夹的作用)
      • [四、Jenkins 的应用](#四、Jenkins 的应用)
        • [新建 job](#新建 job)
        • [配置 job](#配置 job)
        • [jenkins 集成 Allure 报告。](#jenkins 集成 Allure 报告。)
        • [jenkins 集成 HTML 的报告](#jenkins 集成 HTML 的报告)
      • [五、Jenkins 发送电子邮件](#五、Jenkins 发送电子邮件)
      • [六、Jenkins 定时任务](#六、Jenkins 定时任务)
      • [七、Jenkins 持续部署 CD](#七、Jenkins 持续部署 CD)

一、Jenkins 的简介

它是一个可以扩展的持续集成CI和持续部署CD的平台,它只是平台,主要的运作的是插

件。

主要作用:

持续的监控项目版本的发布。实现持续部署CD

监控外部的定时任务。

二、Jenkins的安装

查看文章: jenkins 持续集成环境从0到1搭建全过程

三、Jenkins 文件夹的作用

  • jobs:构建作业(job)的配置细节,以及运行作业时的产物和数据。
  • logs:日志
  • nodes:节点配置
  • plugins:插件
    • Allure jenkens Plugin 解决allure报告和jenkins集成的插件。
    • HTML publisher 集成HTML报告的插件
    • RobotFrameowrk 集成RF
    • Zentimestamp 集成日期和时间
    • Email Extesion plugin 集成电子邮件
    • Groovy 解决自动化报告样式丢失的插件
    • secrets 存放秘钥
    • updates 存放更新的插件
    • userContent 定制化的内容
    • users 用户信息
    • war 存放web应用程序
    • workspace 默认工作空间。

四、Jenkins 的应用

新建 job
配置 job
    1. 配置自定义的工作空间
    1. 构建命令
jenkins 集成 Allure 报告。
    1. 安装 allure 插件
    • Manage Jenkins->Plugins
    • Available Plugins -> 搜索插件并安装
    1. 在【全局工具配置】,设置 Allure
    • Manage Jenkins->Tools
    • Allure Commandline->配置 Allure
    1. 在 job 里面配置:构建后的操作
    • Configuration->Post-build Actions
    • Add post-build actions ->Allure Report
    • Add post-build actions ->Allure Report-> 配置临时文件夹(也就是存放log的文件夹)
      • Advanced -> 配置报告文件夹位置
    1. 配置完成后,重新运行,点击 报告即可查看
jenkins 集成 HTML 的报告
  • 1)安装 HTML publisher 插件

  • 2)配置job里面的【构建后操作】

  • 3)配置【构建】,选择输入一下脚本解决HTML报告样式丢失的问题:

    System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

五、Jenkins 发送电子邮件

1)安装插件:Email Extension
2)开启 POP3/SMTP 服务
3)获得邮箱的客户端密码
4)配置邮箱的发件人,SMTP服务器,收件人等信息。
  • 配置系统管理员的邮箱:Manage Jenkins->System->System Admin e-mail address

    • 填写:和发件人邮箱保持一致
  • 配置发件人信息:Manage Jenkins->System->Extended E-mail Notification

  • 配置收件人信息&邮件的标题和内容:

  • 邮件的服务器和后缀:Manage Jenkins->System->E-mail Notification

  • 邮件参数解释:
    *

    1. Default Content Type
    • 含义:默认邮件内容格式

    • 选项:Plain Text (text/plain) 是纯文本格式,也可按需选 HTML 格式(若支持),决定邮件正文的解析方式

      1. List ID
      • 含义:邮件列表标识
      • 作用:给批量发送的邮件标记统一 ID(类似邮件列表的 "分组名" ),方便收件箱规则识别、归类
      1. Add 'Precedence: bulk' E-mail Header
      • 含义:添加 "批量邮件" 头信息
      • 作用:勾选后,邮件头会带 Precedence: bulk ,提示收件箱这是批量发送的邮件,部分邮箱会据此调整拦截策略(如降低进垃圾箱概率)
      1. Default Recipients
      • 含义:默认收件人
      • 用法:填邮箱地址(多个用逗号分隔),作为全局默认收件人,项目级配置未指定时会用这里的地址
      1. Reply To List
      • 含义:回复邮件的目标地址
      • 作用:指定 "回复邮件" 时默认发到哪个邮箱,可设邮件列表地址或统一回复邮箱
      1. Emergency reroute
      • 含义:紧急转发地址
      • 作用:极端情况(如主收件系统故障)下,邮件会转发到这里的地址,保障通知不丢失
      1. Allowed Domains
      • 含义:允许的收件域名
      • 作用:填域名(如 yourcompany.com ),限制只有该域名的邮箱能收邮件,避免误发到外部
      1. Excluded Recipients
      • 含义:排除的收件人
      • 用法:填邮箱地址,即使在默认 / 项目收件人里,这些地址也不会收到邮件(用于临时屏蔽)
      1. Default Subject
      • 含义:默认邮件主题
      • 示例:KaTeX parse error: Expected 'EOF', got '#' at position 22: ...T_NAME - Build #̲BUILD_NUMBER - $BUILD_STATUS! 是 Jenkins 变量,自动替换为 项目名、构建编号、构建状态 ,让主题动态体现构建结果
      1. Maximum Attachment Size
      • 含义:最大附件大小
      • 说明:-1 表示不限制大小,也可填数值(如 10 代表 10MB ),控制邮件附件的上限
  • 邮件内容格式参考:

    标题:【构建通知】:PROJECT_NAME - Build # BUILD_NUMBER - $BUILD_STATUS!
    内容:

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> 本邮件由系统自动发出,无需回复!
    各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
    构建结果 - ${BUILD_STATUS}

    构建信息

    失败用例


    $FAILED_TESTS

    最近提交(#$SVN_REVISION)


      ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
    • %d [%a] %m
    • "}
    详细提交: ${PROJECT_URL}changes
    复制代码
              </td>    
          </tr>    
      </table>    
    </body> </html>
    5)在 job 里面配置:构建后的操作
    • configure->Add post-build action->Editable Email Notification:
    • Andvanced Settings->Triggers->Add Trigger(注意把构建失败才发送的默认配置给去掉再添加)
    • 修改触发的方式,默认是失败触发,改成总是触发 Always:
    • 保存配置,重新运行完成后,便可接收到邮件

    六、Jenkins 定时任务

    • configure->Triggers->Build periodically
    • 五星大法:* * * * * [分 时 日 月 年]
    • 比如下图是每天的 11:34 自动触发运行

    七、Jenkins 持续部署 CD

    • 手工发布版本:
      开发1.0,代码和数据库导出,部署到测试环境。
      开发2.0,代码和数据库导出,部署到测试环境。
      ...
    • 持续部署:
      • configure->Source Code Management:
      • 根据上图提示,配置完项目克隆的 git 仓库地址和拉取分支,下次在 build 项目时,会拉取仓库上对应分支的最新代码,然后再运行,这样便可完成持续部署
    相关推荐
    程序员阿斌哥37 分钟前
    记录一次jenkins slave因为本地安装多个java版本导致的问题
    java·jenkins
    尽兴-3 小时前
    Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)
    大数据·git·gitee·gitlab
    LI JS@你猜啊8 小时前
    liunx版本的
    运维·jenkins
    消失的旧时光-194320 小时前
    多场景 OkHttpClient 管理器 - Android 网络通信解决方案
    android·gitee
    A-wliang1 天前
    从零开始搭建现代化 Monorepo 开发模板:TypeScript + Rollup + Jest + 持续集成完整指南
    ubuntu·ci/cd·typescript
    不念霉运1 天前
    从“分散开发”到“智能协同” —— Gitee 如何赋能河南农担构建金融级研发体系?
    金融·gitee·团队开发·数字化转型
    网安INF2 天前
    CVE-2024-23897源码分析与漏洞复现(Jenkins 任意文件读取)
    java·web安全·网络安全·jenkins·漏洞
    测试开发Kevin3 天前
    详解Jenkins Pipeline 中git 命令的使用方法
    运维·jenkins
    远方16093 天前
    0x-4-Oracle 23 ai-sqlcl 25.1.1 独立安装-配置和优化
    数据库·ci/cd·oracle