Как условно построить другие проекты?

У меня довольно сложная работа в Jenkins, которая собирает, тестирует и упаковывает веб-приложение. В зависимости от ситуации, я хотел бы делать разные вещи после завершения этой работы. Я не нашел повторно используемый / поддерживаемый способ сделать это. Это действительно так или я что-то упустил?

Варианты, которые я хотел бы иметь после завершения моей сложной работы:

Ничего не делать

Запустите мой конвейер сборки с низким уровнем риска:

копирует мой файл WAR в мой репозиторий артефактовразвертывает на производство

Запустите мой конвейер сборки с высоким уровнем риска:

копирует мой файл WAR в мой репозиторий артефактовразвертывает для тестированияпровести приемочные испытанияразвернуть к производству

Я не нашел простой способ сделать это. Самый простой, но не очень поддерживаемый подход - создать три отдельных задания, каждое из которых запускает последующую сборку. Такой подход пугает меня по нескольким причинам, включая тот факт, что изменения должны быть сделаны в трех местах, а не в одном. Кроме того, многие из последующих работ также практически идентичны. Единственная разница в том, какие нижестоящие рабочие места они называют. Похоже, что увеличение числа рабочих мест приведет к неразберихе.

Я рассмотрел использование нескольких подходов, чтобы сохранить это как одну работу, но ни один до сих пор не работал:

Сделать работу мультиконфигурационным проектом (https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project). Это обеспечивает способ ввести задание с параметром. Я не нашел способ сделать "строить другие проекты " шаг реагирует на параметр.

Используйте плагин Parameterized-Trigger (https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin). Этот плагин позволяет запускать нисходящие задания на основе определенных триггеров. Триггеры кажутся слишком строгими. Oни'Все они основаны на состоянии сборки, а не на произвольных переменных. Я неЗдесь нет ни одной опции, которая бы подходила для моего варианта использования.

Используйте плагин Flexible Publish (https://wiki.jenkins-ci.org/display/JENKINS/Flexible+Publish+Plugin). Этот плагин имеет противоположную проблему, как плагин параметризованного триггера. У него есть много полезных условий, которые он может проверить, но это не так.Похоже, он может начать строительство другого проекта. Его действия ограничены типами публикаций.

Используйте плагин Flexible Publish + Any Build Step (https://wiki.jenkins-ci.org/display/JENKINS/Any+Build+Step+Plugin). Плагин Any Build Step позволяет сделать любое действие сборки доступным для плагина Flexible Publish. Хотя после активации этого плагина стало доступно больше действий, эти действия нет включает "строить другие проекты. "

Неужели нет простого способа сделать это? Я'Я удивлен, что у меня нетне нашел и еще больше удивился тому, что у меня нетнеужели кто-нибудь еще пытался это сделать? Я делаю что-то необычное? Есть ли что-то очевидное, чего мне не хватает?

Ответы на вопрос(5)

Ваш ответ на вопрос