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