Html reportFiles参数语法是什么

Fil*_*iak 7 jenkins jenkins-pipeline

我正在尝试通过Jenkinsfile为Jenkins配置HTML Publisher插件,以发布一些这样的html文件:

    publishHTML(
        target: [
              allowMissing         : false,
              alwaysLinkToLastBuild: false,
              keepAll              : true,
              reportDir            : 'my-project-grails/build/reports/codenarc',
              reportFiles          : 'test.html',
              reportName           : "Codenarc Report"
        ]
    )
Run Code Online (Sandbox Code Playgroud)

这里reportFiles参数说明说我应该能够指定多个文件。但是语法是什么?

bur*_*ttk 10

“您可以指定多个逗号分隔的页面,每个页面都将是报告页面上的一个标签”(来自docs插件)。

所以我认为是:

reportFiles: 'test.html,other.html'
Run Code Online (Sandbox Code Playgroud)

它可以支持类似通配符*.html吗?不,但是在https://issues.jenkins-ci.org/browse/JENKINS-7139有一些解决方法。


Seb*_*ien 10

如果您有多个HTML文件,但不知道其名称也不预先计算,则可以执行以下代码:

script {
    def htmlFiles
    dir ('reports') {
        htmlFiles = findFiles glob: '*.html'
    }
    publishHTML([
            reportDir: 'reports',
            reportFiles: htmlFiles.join(','),
            reportName: 'Newman Collection Results',
            allowMissing: true,
            alwaysLinkToLastBuild: true,
            keepAll: true])
}
Run Code Online (Sandbox Code Playgroud)

请注意该script部分,因为Jenkins不允许在stagesteps部分中声明变量。