Я реализовал собственный подключаемый модуль Jenkins, совместимый с Pipeline, который расширяет класс SynchronousNonBlockingStepExecution
. Я хотел бы реализовать особую логику выполнения Jenkins Master vs Jenkins Slave. Как я могу проверить из кода плагина, выполняется ли шаг на Мастере?
Разработка плагина Jenkins — как проверить, выполняется ли плагин на Jenkins Master
29.12.2018
Ответы:
1
Обычно выполнение плагина происходит на исполнителе сборки в подчиненном Jenkins. Но чтобы проверить, какая часть кода плагина выполняется на ведущем/ведомом, вы можете использовать следующее.
- Найдите переменную среды, специфичную для вашего подчиненного устройства. Я использую
NODE_NAME
env var для этой цели. Вы можете узнать все доступные переменные среды в вашем экземпляре Jenkins через https://localhost:8080/env-vars.html (замените имя хоста, чтобы оно соответствовало вашему экземпляру). Там вы найдете NODE_NAME:
ИМЯ_УЗЛА
Имя агента, если сборка выполняется на агенте, или «мастер», если выполняется на мастере.
Зарегистрируйте/распечатайте переменную среды. Ниже приведен фрагмент кода, показывающий, как его можно распечатать. Там я показываю пример, используя метод 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 }
Кроме того, вы также можете записать значение в файл и прочитать значение оттуда.
30.12.2018
Новые материалы
Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка.
Во время предварительного обучения модель обучается на неразмеченных данных с помощью..
Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать
С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..
Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv)
Автор : Бар Лайт
Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..
Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята?
В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..
Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение.
В этом процессе мы будем использовать неконтролируемое обучение, чтобы..
Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm.
Оглавление
Глоссарий
I. Новый пакет
1.1 советы по инициализации..
Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных.
Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..
System.getenv("NODE_NAME")
возвращаетnull
, а неmaster
или имя агента. 30.12.2018