Я работаю над созданием пользовательского шага конвейера 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
Любые идеи о том, как я могвыполнить эту проверку вызываемого метода, прежде чем я начну вызывать их один за другим, а затем, возможно, получу исключение на полпути?