Мне интересно, есть ли решение для внешней оркестровки Дженкинса или нет?Выберите подход для внешней оркестровки Дженкинса
Позвольте мне объяснить нашу установку первой:
- Мы несколько огромных Java артефакты, которые необходимо проверять через непрерывную интеграцию трубопровода
A
работа выполнена с возможностью захвата кода после фиксации, запускать модульные тесты и построить сам артефактB
заданий (их сейчас нет), параллельно запускают различные тесты дыма, используя пустые базы данных. Они вызвали только послеA
job удалось. Эти рабочие места используют внешние ресурсы: облачные узлы (к которым будет применяться артефакт) и базы данных из пула БД. Работа может вернуть три статусов в Дженкинс:- зеленый: облако узел был получен успешно, артефакт был развернут, все тесты прошли
- желтые: нет никаких сбоев инфраструктур обнаружено, но некоторые (или все) тестов не удались -> Blame разработчики/QA здесь
- red: произошел еще один сбой инфраструктуры: облако испортилось, недоступна база данных, развертывание артефакта завершилось неудачно. -> Авторство DevOps здесь
C
работы: пробег только если всеB
рабочих мест были зеленой. В противном случае конец потока. Загрузка артефакта в NexusD
jobs: запуск функциональных тестов: несколько заданий здесь будут повторно использовать узлы облаков сB
заданий, чтобы сэкономить время на развертывание. Нам все равно, какой статус они получат: зеленый, желтый или красный. Просто записывайте результаты и все. Тем не менее, здесь есть две задания, которые будут развертывать исходный артефакт из заданияA
в кластерной конфигурации, и если развертывание выполнено успешно, тоE
запуск задания независимо (т.е. еслиD1
сбой задания, тоE1
не должен запускаться, но если заданиеD2
выполнено в том же рабочем процессе, чемE2
).
Когда рабочий процесс завершен, вам необходимо определить статус: если произошла фатальная ошибка (любая красная сборка), чем рабочий процесс, должен иметь сбой статуса.
После завершения рабочего процесса все ресурсы должны быть освобождены: облачные узлы и базы данных.
Какой инструмент или библиотека потока операций или процесса можно использовать для реализации такой логики?
У нас есть несколько других трубопроводов с различными потоками, поэтому они должны быть гибкими.
Текущая реализация имеет очень сложную логику и несколько технических заданий, которые будут заниматься общими ресурсами. Мы хотим реализовать эту логику в одном месте: оркестр, который будет запускать задания Дженкинса извне, подавая им параметры для запуска.