2012-06-03 4 views
3

Как я могу найти путь к плагину Jenkins, если я хочу использовать его из groovy-скрипта?Доступ к плагину Jenkins из сценария Groovy

Например, просто тестирование на мастере, я хотел бы иметь возможность использовать класс LabelParameterValue из плагина NodeLabelParameter. Ниже приведен пример того, что я ищу, (хотя он не работает).

currentParameters.add(new hudson.plugins.nodelabelparameter.LabelParameterValue(nodeName))

+0

Я смог сделать то, что вы делаете как с консолью Jenkins Groovy, так и с системным скриптом Groovy, запущенным через Groovy Plugin. Я использовал класс в Плагине претензий. Итак: (1) Как вы используете скрипт Groovy (2) Загружен ли плагин? –

+1

Я обнаружил, что это работает в консоли Jenkins, и это, вероятно, работает в системных сценариях, но это не работает в Groovy Postbuild (вероятно, потому, что он не работает на ведущем Jenkins). Думаю, теперь вопрос в том, как я могу получить доступ к мастеру через скрипт Groovy Postbuild. 'import org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue' (взято из названия пакета на Github) – Louis

ответ

2

В Postbuild Groovy скрипта вы можете указать Дополнительных заводные классов. Например: /var/jenkins/plugins/claim/WEB-INF/classes для кода плагина претензии. Я попробовал, и это сработало.

К сожалению, путь должен быть абсолютным и не допускать изменения окружения (например, ${JENKINS_HOME}). Кроме того, я не совсем уверен, где будет выглядеть сценарий при работе на подчиненном устройстве - на подчиненном устройстве или на главном.

+1

Это отлично поработало. Благодаря! Для тех, кто ищет этот плагин специально, он был в '/ var/lib/jenkins/plugins/nodelabelparameter/WEB-INF/classes', где'/var/lib/jenkins/'должен быть заменен вашим hardcoded Jenkins home. Следует также упомянуть, что я нашел обходной путь для этой проблемы, который заключается в использовании этапа сборки «Выполнение системы Groovy». Вы можете получить доступ к текущей сборке, используя: 'def thr = Thread.currentThread(); def build = thr? .executable' и все еще импортировать пакеты без classpath. (кредит: http://bit.ly/K6G3OS) – Louis

Смежные вопросы