温馨提示×

Debian Jenkins如何生成构建报告

小樊
34
2025-12-07 00:47:52
栏目: 智能运维

Debian 上 Jenkins 生成构建报告的实用做法


一 前置准备

  • Debian 上安装并启动 Jenkins(确保已安装 Java):
    • 导入密钥与源并安装:sudo apt update && sudo apt install jenkins
    • 启动与开机自启:sudo systemctl enable --now jenkins
    • 访问 http://服务器IP:8080 完成初始化
  • Jenkins 管理界面 → 插件管理 安装所需插件(按需选择):
    • HTML Publisher plugin(发布 HTML 报告)
    • JUnit(收集与趋势展示测试报告)
    • Allure 插件(若使用 Allure 报告)

二 常用报告方式与示例

  • JUnit 测试报告(通用、可统计趋势)

    • 构建步骤中产出 JUnit XML(如 Gradle/Maven/pytest 等均可)
    • Pipeline 示例:
      • pipeline {
        • agent any
        • stages {
          • stage(‘Test’) { steps { sh ‘./gradlew check’ } }
        • }
        • post {
          • always { junit ‘/build/reports//*.xml’ }
        • }
        • }
    • 作用:Jenkins 会汇总测试结果并展示趋势,失败用例可将构建标记为 UNSTABLE
  • HTML 报告(原生或工具生成)

    • 方式 A(通用 HTML):在构建步骤生成 HTML(如 pytest --html=report.html --self-contained-html),构建后操作添加 Publish HTML reports,配置报告目录与首页文件名,构建后在项目页面点击 HTML Report 查看。
    • 方式 B(Allure 报告):安装 Allure 命令行,在 全局工具配置 中注册 Allure;Pipeline 示例:
      • stage(‘Generate Allure Report’) {
        • steps { sh ‘allure generate allure-results -o allure-report --clean’ }
        • }
      • 构建后操作选择 Allure Report 并指向 allure-report 目录。
  • 归档产物(便于下载与留存)

    • 将报告或构建产物归档,便于审计与回溯:
      • archiveArtifacts artifacts: ‘/build/libs//.jar, /allure-report//’, fingerprint: true

三 HTML 报告样式与 JS 失效的处理

  • 现象:在 Jenkins 中查看时 CSS/JS 不生效、交互按钮不可用。
  • 原因:Jenkins 默认启用 CSP(Content-Security-Policy),会阻止内联样式/脚本与外链资源。
  • 解决方案(按安全性与持久化选择):
    • 临时生效(重启后失效):进入 系统管理 → 脚本命令行,执行
      • System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
    • 永久生效(Debian systemd 场景):编辑 /etc/default/jenkins,在 JENKINS_JAVA_OPTIONS 中追加
      • -Dhudson.model.DirectoryBrowserSupport.CSP=“default-src ‘self’; style-src ‘self’ ‘unsafe-inline’; script-src ‘self’ ‘unsafe-inline’;”
      • 然后执行:sudo systemctl daemon-reload && sudo systemctl restart jenkins
    • 说明:放宽策略会带来一定安全风险,生产环境建议结合报告内容来源与网络隔离策略谨慎配置。

四 实用建议

  • 报告路径尽量使用相对工作空间路径,避免绝对路径导致归档或发布失败。
  • 使用 JUnit 报告可获得测试趋势、失败归因与构建稳定性判定;配合 archiveArtifacts 留存产物与报告压缩包。
  • 使用 Allure 时,确保每次构建前清理旧结果(如 allure generate 加 –clean),避免历史残留影响展示。

0