Дженкинс: запуск многоотраслевого конвейера при восходящем изменении

В настоящее время я тестирую конвейерный подход Jenkins 2.0, чтобы увидеть, работает ли он в среде сборки, которую я использую.

Сначала о самой окружающей среде. В настоящее время он состоит из нескольких хранилищ SCM. Каждый репозиторий содержит несколько веток, для разных этапов разработки, и каждая ветка строится с несколькими конфигурациями. Не все конфигурации применимы к каждому репозиторию.

В настоящее время каждый репозиторий / ветка настроен какМатричный проект для разных конфигураций. Каждый проект представляет свои результаты строительства как артефакт, и эти артефакты используются в последующих проектах.

Различные репозитории зависят друг от друга, поэтому успешная сборка вышестоящего задания запускает некоторые конкретные задания вниз по течению. В настоящее время все это работает, но объем работы, необходимой для настройки новой ветви или настройки процесса сборки, очень велик, поскольку многие различные проекты необходимо изменять вручную.

Теперь я хотел попробовать новые трубопроводы. Моя идея состояла в том, чтобы создать многоотраслевые трубопроводные проекты и разместитьJenkinsfile внутри репозитория, содержащего инструкции по сборке.

Основная проблема состоит в том, чтобы заставить сборки запускать друг друга, потому что, в основном, сборка в конкретной ветке upstream должна запускать ветку downstream. Однако информация о том, какие нисходящие ветки должны быть запущены, неизвестна вышестоящему проекту. Каждый нисходящий проект выбирает артефакты из некоторых веток восходящего потока, и идеальным решением было бы, если бы нисходящая сборка была бы запущена в случае, если вышестоящая сборка, которая является источником для артефакта, заканчивает свою сборку.

Проблема в том, что только нижестоящие проекты действительно знают, какие артефакты им нужны. Имена ветвей в большинстве случаев вряд ли совпадают, и это затрудняет запуск сборок из вышестоящего проекта.

В настоящее время это решается с помощьюReverseBuildTrigger, Но эта штука перестает работать, как только она приближается к трубопроводу.

Я действительно в растерянности, как заставить это работать. Есть ли способ получить что-то вродеReverseBuildTrigger работа внутри конвейерных скриптов?

Кроме того, запуск всей нисходящей сборки для всех ветвей в случае изменения одной ветки в восходящем направлении не возможен. Это создаст слишком много равных сборок.

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

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