Jenkins 如何在管道中使用富文本发布器插件

Jenkins 如何在管道中使用富文本发布器插件,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在尝试在管道中显示HTML报告。 为此,我打算将我过去使用的Rich Text Publisher插件重新用于“普通”作业或矩阵作业,但我无法成功:) 以下是我目前的管道: pipeline{ agent { label 'master' } options { disableConcurrentBuilds() } stages { stage('Workspace initialization'){

我正在尝试在管道中显示HTML报告。 为此,我打算将我过去使用的Rich Text Publisher插件重新用于“普通”作业或矩阵作业,但我无法成功:)

以下是我目前的管道:

pipeline{
    agent { label 'master' }
    options {
        disableConcurrentBuilds()
    }
    stages {
        stage('Workspace initialization'){
            steps{
                deleteDir()
                cleanWs()
            }
        }
        stage('main stage') {
            matrix {
                agent any
                axes {
                    axis {
                        name 'PRODUCT'
                        values 'product_A', 'product_B'
                    }
                }
                stages {
                    stage('Quality') {
                        steps {
                            catchError(buildResult:'UNSTABLE', stageResult:'FAILURE') {
                                echo "Quality analysis for ${PRODUCT}"
                                sh 'mkdir -p artifacts/${PRODUCT}; echo "<h2>HTML report for ${PRODUCT}</h2>" > artifacts/${PRODUCT}/summary.html'
                            }
                            rtp {
                                stableText """<html><head><title>Report</title></head> <body>plop</body></html>"""
                                unstableAsStable true
                                failedAsStable true
                                parserName 'HTML'
                                abortedAsStable true
                            }
                        }
                    }
                }
            }
        }
    }
    post {
        always {
            archiveArtifacts artifacts: 'artifacts/**/*'
        }
    }
}
所以我的问题是:如何在管道上下文中使用富文本发布器插件

还有一个额外的,更一般的,如何从插件的文档中推断这些信息(例如)


提前感谢。

根据文档和错误消息,
rtp
方法需要命名参数。根据代码和错误消息,您正在传递一个
Closure[String]
类型的参数。通过将参数转换为命名参数,可以遵循正确的用法,如下所示:

rtp(
  stableText:       '<html><head><title>Report</title></head> <body>plop</body></html>'
  unstableAsStable: true
  failedAsStable:   true
  parserName:       'HTML'
  abortedAsStable:  true
)
rtp(
stableText:“报告扑通一声”
不稳定的;不稳定的
FailedAssessTable:true
parserName:'HTML'
abortedAsStable:true
)

这将纠正您的错误。

非常感谢!我可以再前进一步。现在我已经用类似的东西更改了rtp部分:
RTPStabletext:'Report plop',parserName:'HTML'
,它可以工作了,至少管道不再出现故障。但是插件什么也不发布,并且在日志中说:
RTP:ignoreding buildresult==null aka publishing nothing
有什么想法吗?@ncarrier你当然可以问一个关于这个新问题的新问题,看看有什么答案。好的,我会的,无论如何,再次感谢你:)好的,我想我已经回答了我自己的(第二个)问题,似乎rtp插件需要在执行之前设置好状态,所以当放在帖子部分时,它可以正常工作。我没有每个产品的页面,但我展示了一个全球报告,收集了所有产品的报告,所以对我来说,问题完全解决了。再次感谢:)
rtp(
  stableText:       '<html><head><title>Report</title></head> <body>plop</body></html>'
  unstableAsStable: true
  failedAsStable:   true
  parserName:       'HTML'
  abortedAsStable:  true
)