【问题标题】:How does one run allure plugin in jenkins pipeline?如何在 jenkins 管道中运行 allure 插件?
【发布时间】:2023-04-30 05:04:01
【问题描述】:

我正在为多个项目构建基于管道/jenkins 的 CI,并希望存储魅力结果,就像在使用快速访问图标的常规构建中所做的那样。是否可以通过管道实现?

【问题讨论】:

    标签: jenkins allure


    【解决方案1】:

    我们未能在管道中使用 Allure Jenkins 插件。它似乎只支持job-dsl-plugin。所以......只需添加使用 Allure CLI 生成报告的阶段并将报告发布为常规 HTML 报告。它的图标将在作业和构建屏幕上可用。

    更新

    Allure v2 已支持流水线 - 请参阅 documentation

    stage('reports') {
        steps {
        script {
                allure([
                        includeProperties: false,
                        jdk: '',
                        properties: [],
                        reportBuildPolicy: 'ALWAYS',
                        results: [[path: 'target/allure-results']]
                ])
        }
        }
    }
    

    【讨论】:

    • 做了同样的事情,是的。 It is planned to add pipeline support in v2.0,顺便说一句(注意:插件名称将被更改)
    • @Etki 谢谢,好消息。如果在 docker 中运行管道和并行作业,这将非常有用。
    • 是的,他们在 allure 2.x 中确实支持管道,从管道调用,如 allure([ jdk: '', properties: [], results: [[path: '/allure-results' ]] ]) 。请注意,您应该在构建期间通过 gradle/maven 任务准备它们。
    【解决方案2】:

    为你的 jenkins 安装 allure 插件。 转到您的管道构建配置。点击管道语法,选择 allure 报告,填写必填字段,点击生成语法,它将为您提供要添加到现有 groovy 脚本中的所需代码

    【讨论】:

    • 请使用大写字母并添加一些格式以便于阅读。
    • 请注意,您需要确保已安装 HTMLPublisher 插件
    【解决方案3】:

    我现在将 Allure 报告与 Jenkins 管道一起使用 您必须执行一些额外的配置步骤:

    _1。 Jenkins master 必须从http://wiki.qatools.ru/display/AL/Allure+Jenkins+Plugin 中描述的以下选项开始 (示例 docker-compose.yaml)

        version: '2'
        services:
          jenkins.master:
          image: jenkins
    
          # ...
    
          environment:
            JAVA_OPTS: "-Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';\" -Djenkins.model.DirectoryBrowserSupport.CSP=\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';\""
    

    _2。从 jenkins 插件中心安装的 HTML Publisher 插件

    _3。 Allure 报告由 maven 生成,示例 pom.xml 在这里https://github.com/ludenus/mobile_test_poc/blob/master/pom.xml

    $ mvn -Dmaven.test.failure.ignore=true site
    

    _4。魅力报告由 HTML 发布者发布

        stage('Publish') {
            echo 'Publish Allure report'
            publishHTML(
                    target: [
                            allowMissing         : false,
                            alwaysLinkToLastBuild: false,
                            keepAll              : true,
                            reportDir            : 'target/site/allure-maven-plugin',
                            reportFiles          : 'index.html',
                            reportName           : "Allure Report"
                    ]
            )
        }
    

    【讨论】:

      最近更新 更多