2016-08-02 3 views
0

я пытаюсь сделать построить продвижение в Дженкинс следующим образом:вызвать релиз сборки Jenkins, используя плагин

  • Дженкинс Задание сборки прод Снимок
  • А имеет вниз по течению задания B, который развертывает снимок в Тест.
  • B имеет нижестоящее задание C, которое запускает тест на Prod A in test env.
  • Если C успешно, я хотел бы продвигать работу A путем ношения выпускной сборки задания A; это начнет работу B, в которой будет развернута версия выпуска для Prod env; Job C будет запущен для запуска тестов на Prod env. Если C успешно просто отправить почту на все .. он не должен пнуть другую сборку А.

Am пытается использовать плагин продвижения сборки, где я могу установить критерии.

  1. Но в разделе «Действия», как я могу начать выпуск версии A.?
    Также обратите внимание, что первый раунд представляет собой сборку моментальных снимков A. Когда C успешно, я хочу запустить сборку релиза A только один раз. Это не должно продолжаться в цикле.

  2. Если у вас есть какие-либо другие лучшие идеи для достижения этой функциональности, пожалуйста, дайте мне знать

Благодарности

ответ

1

Используйте две вакансии цепи:

  1. один набор рабочих мест A/B/C для моментального снимка (скажем, A-snap/B-snap/C-snap) и
  2. другой набор заданий A/B/C для выпуска (например, A-rel/B-rel/C-rel).

Настройка продвижение A-snap так, что он будет триггер A-rel. Не используйте раскрутку для A-rel (или используйте другое действие для обработки успешных выпусков). Это предотвратит «проблему петли», о которой вы упомянули.

Дублирование работы появляется неудобно в первую очередь, но будет простым при использовании некоторой основы для создания рабочих мест автоматически (как Job DSL plugin). С другой стороны, вы получите гораздо более ясную настройку, так как вы избежите того, что то же самое задание действительно выполняет разные задачи (здесь: сборка/развертывание/тестирование с моментальным снимком и выпуском).Это имеет дополнительные преимущества:

  • снимок и освободить задачи могут выполняться в параллельно (если у вас есть ресурсы)
  • если задание сборки связано с SCM, затем смешивание снимок/релиз сборки приведет к беспорядку (неправильные изменения, неправильное обвинение)
  • , даже если он не привязан к SCM, прослеживаемость будет намного лучше, когда не смешивается моментальный снимок/релиз, создается в одной и той же работе.

Что касается вашего вопроса "1.": на самом деле запуск A-rel будет простым (есть Build other projects действие). Однако вам нужно убедиться, что A-rel будет запускаться в той же версии моментального снимка, которая в настоящее время продвигается.