Как вернуть задание Дженкинса из задания, которое его запустило?

#jenkins #jenkins-plugins

#Дженкинс #дженкинс-плагины

Вопрос:

Сценарий

Здесь три разных задания запускают ЗАДАНИЕ X. Требование заключается в том, что по завершении ЗАДАНИЯ X оно должно вернуть задание, которое его запустило.

Например, если ЗАДАНИЕ X запускается ЗАДАНИЕМ B, оно должно вернуть только ЗАДАНИЕ B.

Вещи, которые я пробовал:

  1. Я использовал опцию «создать другое задание» из действия Post build, где я могу указать список заданий, которые необходимо запустить.

  2. Это не удовлетворяет моему требованию, поскольку запускает все ЗАДАНИЯ, перечисленные в поле.

Пожалуйста, помогите!!

Ответ №1:

Вы можете использовать параметризованный плагин запуска :

  1. Добавьте строковый параметр к вашему заданию X, например, с именем ParentJob .
  2. Используйте этот параметр для настройки запуска задания A, B или C : ${ParentJob}
  3. Добавьте действие после сборки «Запускать параметризованные сборки в других проектах» для каждого из ваших других заданий (A, B и C).
  4. Добавьте «Предопределенные параметры» к этому действию 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, и так далее…