Разработка плагина Jenkins - как проверить, выполняется ли плагин на Jenkins Master - PullRequest
0 голосов
/ 29 декабря 2018

Я реализовал пользовательский плагин Jenkins-совместимый, который расширяет класс SynchronousNonBlockingStepExecution.Я хотел бы реализовать особую логику исполнения на Дженкинс Мастер против Дженкинс Раб.Как я могу проверить из кода плагина, выполняется ли шаг на Master?

1 Ответ

0 голосов
/ 30 декабря 2018

Обычно выполнение плагина происходит на исполнителе сборки в подчиненном устройстве Jenkins.Но, чтобы проверить, какая часть кода плагина выполняется на главном / подчиненном устройстве, вы можете использовать следующее:

  1. Найдите переменную среды, специфичную для вашего ведомого устройства.Я использую NODE_NAME env var для этой цели.Вы можете узнать все доступные переменные окружения в вашем экземпляре Jenkins с помощью http://localhost:8080/env-vars.html (замените имя хоста, соответствующее вашему экземпляру).Там вы найдете NODE_NAME:

NODE_NAME

Имя агента, если сборка выполняется на агенте, или "master""если запустить на мастере

Записать / распечатать переменную среды.Ниже приведен фрагмент кода, который показывает, как его можно распечатать.Там я покажу пример использования метода setUp из hudson BuildWrapper для справки.

@Override
public Environment setUp(final AbstractBuild build, final Launcher launcher,
                final BuildListener listener) throws IOException, InterruptedException {

   String node = System.getenv("NODE_NAME");
   String msg = "I'm executing on node: " + node;
   listener.getLogger().println(msg); //prints to build log
   logger.info(msg);           // slf4j logger - prints to catalina log/jenkins log
}

Кроме того, вы также можете записать значение в файл и прочитать его оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...