#jenkins #continuous-integration #gitlab #jenkins-pipeline
#Дженкинс #непрерывная интеграция #gitlab #дженкинс-конвейер
Вопрос:
к сожалению, несмотря на обилие соответствующих вопросов, до сих пор не было дано ни одного приемлемого ответа.
Сценарий:
Запрос на слияние запускает задание конвейера Дженкинса (выполняется с помощью gitlab webhooks)
Неизвестная область:
Конвейер Дженкинса должен локально объединить (выполнить) запрос на слияние локально, выполнить сборку, тесты, интеграционные тесты, анализ сонара и т. Д. И Запустить объединенную ветку только в том случае, если все они завершатся успешно.
Любая помощь приветствуется!
Спасибо!
Ответ №1:
Я дам свой ответ, основанный на моем опыте работы с Дженкинсом и GitLab.
При создании слияния создается временная ветвь, поэтому вы запускаете компиляцию и тестируете на этой ветке. Это делается с помощью webhook, поэтому каждый раз, когда вы создаете запрос на слияние, он запускает задание для jenkins.
В этом задании в разделе post я добавил, что только при успешной сборке вы вызываете API GitLab, чтобы принять запрос на слияние, как вы можете видеть в их документации здесь:
https://docs.gitlab.com/ee/api/merge_requests.html
Вы можете выполнить этот вызов, используя любой метод, который вам больше подходит для создания и отправки запроса на веб-сервер.