Я нахожусь в процессе настройки заданий конвейера Jenkins для нашей сборки. Ранее мы использовали задания Freestyle для создания каждого из наших репозиториев, с различными дополнительными заданиями, запускаемыми вручную на этапах упаковки и развертывания.
На данный момент мы имеем следующую настройку конвейера:
- repoA / Jenkinsfile - конвейер A - сборка, запуск модульных тестов и создание артефакта
- repo B / Jenkinsfile - конвейер B - сборка, запуск модульных тестов и создание артефакта
всякий раз, когда конвейер A илиЗавершение B Я хочу запустить конвейер C.
- Конвейер C должен взять артефакты последних конвейеров A и B, упаковать их вместе как образ докера, выполнить интеграционные тесты, развернуть в промежуточной среде.
Где я должен хранить Jenkinsfile для Pipeline C, поскольку у него нет собственного репо-источника?
Для меня это логически выглядит как отдельный конвейер, которыйвниз по течению от A и B, поэтому предположим, что это принадлежит отдельному файлу Jenkinsfile, но тогда, куда это пойдет в управлении исходным кодом. Чтобы уточнить, я бы хотел, чтобы все мои файлы конвейера находились под контролем исходного кода.
В качестве альтернативы я должен попытаться определить весь конвейер (включая интеграцию и т. Д.) Только в одном из родительских конвейеров , пропуская часть сборки, когда она запускается из другого конвейера? Оставляя другого как простую сборку. Например,
Трубопровод A (полный конвейер)
- сборка
- модульные тесты
- артефакт
- (получить последний артефакт B)
- интеграционный тест
- развертывание в стадии
Pipeline B (простая сборка, в которой затем используется полный конвейер)
- сборка
- модульные тесты
- артефакт
- запускает конвейер A, пропуская все до шага интеграционного теста (возможно с использованием * 1057)* блоки на тех этапах, которые смотрят на триггер сборки?)
Я могу найти ресурсы либо для сборки, либо для запуска одного конвейера из другого, например: https://metamorphant.de/blog/posts/2019-03-11-jenkins-101-downstream-projects/ но нет информации о структурировании вышеуказанных зависимостей и конвейеров в Jenkins Pipeline.