#jenkins #groovy #jenkins-pipeline
#дженкинс #groovy #дженкинс-конвейер
Вопрос:
Я следую примеру в разделе «Шаги доступа«. В src/org/foo/Zot.groovy
я хотел бы вызвать служебную функцию, определенную, например src/org/foo/Bar.groovy
, в . Как это сделать?
Я безуспешно пробовал несколько вещей, например:
// src/org/foo/Zot.groovy
package org.foo;
def bar = new org.foo.Bar()
def checkOutFrom(repo) {
bar.someFunction()
git url: "git@github.com:jenkinsci/${repo}"
}
В этом случае Дженкинс зависает при загрузке глобальной библиотеки. Я также попробовал import
файл.
Ответ №1:
Здесь была воспроизведена аналогичная и, вероятно, связанная с ней проблема: https://issues.jenkins-ci.org/browse/JENKINS-31484
Я воспроизвел аналогичную ситуацию, используя глобальную библиотеку CPS. Трассировка стека исполнителя показывает, что поток блокируется в InvokerInvocationException, как в предоставленной ссылке.
Я смог обойти свой небольшой случай воспроизведения, добавив аннотацию @NonCPS ко всем вызываемым методам в дальнейшем.