У меня есть Jenkinsfile с некоторыми свойствами, например
trace = false
userNotifications = [
build_master : [name : 'name',
email : 'email',
slackid: 'slack id',
slackchannel: 'slack channel']
]
env.aProperty = "aValue"
node('COMPILE')
{
...
}
Я хочу проанализировать приведенный выше файл Jenkinsfile внутри отличного кода, чтобы получить доступ к некоторым значениям свойств.
Когда я использую GroovyShell вот так
Binding binding = new Binding()
GroovyShell shell = new GroovyShell(binding)
Object groovyDsl = shell.evaluate(clean)
я получаю эту ошибку
groovy.lang.MissingMethodException: No signature of method: Script1.node() is applicable for argument types: (String, Script1$_run_closure1) values: [COMPILE, Script1$_run_closure1@7d804e7]
Я мог бы обойти конкретную ошибку с помощью некоторого метапрограммирования Groovy, однако я не уверен, что это правильное направление. Мой вопрос: как лучше всего проанализировать Jenkinsfile в коде Groovy? В конце концов, это Groovy DSL, и я ожидаю, что он будет более простым.