Как я могу использовать метод GString внутри скрипта Jenkins Pipeline? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть декларативный конвейер Дженкинса, в котором один и тот же блок кода должен работать несколько раз с разными параметрами в блоке post. В общем, похоже, что следующий метод

post {
        always {
            script {
                processTestResults("stage1", "path/to/stage1dir")                
                processTestResults("stage2", "path/to/stage2dir")
                ...
     }
  }
}

processTestResults хранится вне конвейера {}. И он построен следующим образом:

def processTestResults(String stageName, String testResultsDir) {
    try {
        if (NAMES_MAP.get(stageName)) {
            String directory = "${testResultsDir}/*.xml"
            junit directory
        }
    }
    catch (Throwable e) {
        e.printStackTrace()
    }
}

К сожалению, этот мой подход с заменой пути junit не работает. Сборка Jenkins завершается ошибкой со следующим выводом:

[Pipeline] echo
Input dir for JUnit reports parser doesn't exist...
[Pipeline] echo
Input dir for Collector script doesn't exist...

Может кто-нибудь посоветовать, как я могу заставить его работать?

...