【发布时间】:2019-02-10 21:02:46
【问题描述】:
我正在尝试将一个 groovy 列表变量传递给 Jenkins 管道脚本中的 allure 插件。我需要使结果列表具有动态性。所以,我想出了解决方案:
- 获取主节点上存储诱惑结果的目录的路径列表
- 创建一个列表 [[path: "path/to/directory"], ...]
- 通过变量将此列表传递给 allure 插件
代码示例:
def collectResultDirectories(){
def directories = sh(
script: "ls ${ALLURE_DIR}",
returnStdout: true
).split('\t?\n')
def results = []
for (dir in directories) {
results = results + [path: "${ALLURE_DIR}/${dir}"]
}
return results
}
def createAllureReport() {
def results = collectResultDirectories()
// == [[path: "results_dir1"], [path: "results_dir2"]]
allure([
includeProperties: false,
jdk: '',
properties: [],
reportBuildPolicy: 'ALWAYS',
// Here I am trying to pass a list variable
results: results
])
}
1) 结果:结果
预期: 已创建串联报告。 实际:带有输出的空报告:
/var/lib/jenkins/tools/ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation/allure/bin/allure generate -c -o /var/lib/jenkins/jobs/jobName/workspace/allure -报告
22:52:11 allure-results 不存在
2) 结果:“${results}”
抛出异常 java.lang.IllegalArgumentException
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-plugins allure jenkins-groovy