Определите, может ли groovy скрипт вызываться из другого groovy script - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над созданием пользовательского шага конвейера Jenkins в форме скрипта groovy, который динамически генерирует список методов (других шагов конвейера), которые необходимо вызвать.В этом случае я собираю их из файла yaml.

Выглядит примерно так:

void call(Map args) {
    //gather tasks and their callable method from yaml

    tasks.each { task ->
        "$task.method"(task.parameters) //dynamically found method gets called here
    }
}

Проблема в том.Я не могу понять, как проверить, доступен ли метод, который я собираюсь вызвать, во время выполнения.

Например:

assert task.method == 'echo'
"$task.method"(task.parameters) //will work just fine, since `echo` is a standard pipeline step

assert task.method == 'httpRequest'
"$task.method"(task.parameters) //might fail if HTTP Request Plugin is not present at runtime

Любые идеи о том, как я могвыполнить эту проверку вызываемого метода, прежде чем я начну вызывать их один за другим, а затем, возможно, получу исключение на полпути?

...