Как построить список рабочих мест в Дженкинс? - PullRequest
4 голосов
/ 23 сентября 2011

В моем проекте у меня есть 3 веб-приложения, все зависят от одного all-commons проекта.

На моем сервере Jenkins я построил 4 задания: all-commons_RELEASE, web-A_RELEASE, web-B_RELEASEи web-C_RELEASE.Роль этих заданий заключается в создании артефактов, которые развернуты на нашем Nexus.Затем кто-то извлекает эти артефакты в Nexus и развертывает их на наших серверах разработки / омологации.

Мне нужно иметь одну (дополнительную?) Работу, которая будет запускать все 4 сборки последовательно.Таким образом, после завершения этого задания все задания RELEASE были выполнены.Конечно, если одна сборка не удалась, процесс останавливается.

Первой моей мыслью было указать web-A_RELEASE в списке Построить другие проекты действий Действия после сборки из all-commons_RELEASE.Тогда web-B_RELEASE зависит от web-A_RELEASE и т. Д.

Однако я хочу иметь возможность запускать любой из них отдельно, что невозможно, если я укажу зависимость от проектов.Например, если я вручную запусту web-B_RELEASE, то после этого будет построено web-C_RELEASE, а это не то, чего я хочу ...

У вас есть идеи, как мне этого добиться, или плагинчтобы помочь мне сделать это?

С уважением.

ps: Jenkins 1.430, и все задания RELEASE являются проектами свободного стиля (они смешивают команды Maven и bash).

Ответы [ 3 ]

3 голосов
/ 23 сентября 2011

Возможно, вы могли бы использовать Параметризованный триггерный плагин ?

Используя плагин, вы можете установить триггер в качестве шага сборки в задании "Конвейер". Есть флажок «Блокировать до завершения запущенного задания», который необходимо активировать. Вы можете просто настроить свои три задания так, чтобы они запускались таким образом, и запуск происходил бы только в том случае, если вы запускаете это новое конвейерное задание, поэтому выполнение других заданий без запуска чего-либо будет работать нормально.

Это должно быть именно то, что вам нужно.

2 голосов
/ 14 декабря 2011

Не знаю, нашли ли вы свой ответ, но для других, кому любопытно:

Вы можете создать другую работу build_all , а затем получить каждую из других сборок.запускается как этапы сборки.

Настройка, которую вы хотите, выглядела бы следующим образом для build_all , при этом каждый этап сборки представляет собой «Запуск по триггеру / вызову для других проектов»

  • Шаг сборки 1: all-commons_RELEASE
  • Шаг сборки 2: web-A_RELEASE
  • Шаг сборки 3: web-B_RELEASE
  • Шаг сборки 4: web-C_RELEASE

Убедитесь, что вы отметили опцию «Блокировать, пока запущенные проекты не завершат свои сборки», чтобы убедиться, что сборки происходят последовательно.

1 голос
/ 22 июля 2015

Попробуйте это

Плагин Build Flow

Вы можете последовательно запускать или создавать свою работу следующим образом:

build("job1")
build("job2")
.
.
build("job-n")
...