Конвейер Дженкинса: принимает запрос на слияние только при успешном завершении конвейера

#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

Вы можете выполнить этот вызов, используя любой метод, который вам больше подходит для создания и отправки запроса на веб-сервер.