Я пытаюсь передать переменную groovy list плагину allure в сценарии конвейера Jenkins.Мне нужно, чтобы список результатов в очарование был динамичным.Итак, я нашел решение:
- Получить список путей к каталогам на главном узле, где хранятся результаты очарования
- Создать список [[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-report
22: 52: 11 allure-results не существует
2) results: "${results} "
Исключение java.lang.IllegalArgumentException выбрасывается