#jenkins #jenkins-plugins
#Дженкинс #дженкинс-плагины
Вопрос:
Здесь три разных задания запускают ЗАДАНИЕ X. Требование заключается в том, что по завершении ЗАДАНИЯ X оно должно вернуть задание, которое его запустило.
Например, если ЗАДАНИЕ X запускается ЗАДАНИЕМ B, оно должно вернуть только ЗАДАНИЕ B.
Вещи, которые я пробовал:
-
Я использовал опцию «создать другое задание» из действия Post build, где я могу указать список заданий, которые необходимо запустить.
-
Это не удовлетворяет моему требованию, поскольку запускает все ЗАДАНИЯ, перечисленные в поле.
Пожалуйста, помогите!!
Ответ №1:
Вы можете использовать параметризованный плагин запуска :
- Добавьте строковый параметр к вашему заданию X, например, с именем
ParentJob
. - Используйте этот параметр для настройки запуска задания A, B или C :
${ParentJob}
- Добавьте действие после сборки «Запускать параметризованные сборки в других проектах» для каждого из ваших других заданий (A, B и C).
- Добавьте «Предопределенные параметры» к этому действию post build и передайте имя задания в параметре
ParentJob
:ParentJob=${JOB_NAME}
Комментарии:
1. Действие Post build должно быть добавлено к ЗАДАНИЮ X, а не к другим заданиям, верно? Потому что я хочу запустить либо ЗАДАНИЕ A, либо B, либо C из ЗАДАНИЯ X по его завершению. Когда я перечисляю все названия проектов (A B C) в разделе «Проекты для сборки», как дженкинс узнает, какой из проектов должен быть запущен из трех?
2. В заданиях A, B и C вы добавляете действие Post build с заданием «Проекты для сборки», равным «Заданию X», и с заданием «Предопределенного параметра», равным
ParentJob=${JOB_NAME}
. И в задании X вы добавляете действие Post build с установленным значением «Проекты для сборки»${ParentJob}
. Но знаете ли вы, что это создаст бесконечный цикл? Задание A запускает задание X, которое вернет задание A, которое снова запустит задание X, и так далее…