GitLab и JenkinsВведение

Внимание! Данный способ устарел. Для новых установок (начиная с версии GitLab Plugin 1.2) перейдите к новой версии данного руководства.

Настройка GitLab

Для разграничения доступа необходимо создать в GitLab отдельного пользователя.

Зарегистрируем в GitLab нового пользователя jenkins, дадим ему права доступа к нужному проекту, а затем скопируем Private-token созданного пользователя.

Для этого заходим в Profile Settings -> Account и копируем оттуда свой private-token

GitLab Private token для Jenkins

 

Настройка Jenkins

Выбор подходящего плагина

На сегодняшний момент (январь 2016) есть два плагина Jenkins для интеграции GitLab: это GitLab Plugin и Gitlab Merge Request Builder. Второй плагин Gitlab Merge Request Builder у меня после настройки не заработал: он успешно подключался к GitLab, но никак не реагировал на новые megre-requests. Поэтому в данной статье мы рассмотрим настройку GitLab Plugin.

Сразу хотелось бы отметить что плагины имеют похожие настройки, и чтобы не запутаться в том какой конкретно плагин мы настраиваем, лучше удалить из Jenkins плагин Gitlab Merge Request Builder, оставив только GitLab Plugin.

Перезагрузка Jenkins

После установки нужного плагина рекомендуется перезагрузить Jenkins-сервер. Для этого перейдите по адресу http://your-server.ru:8080/restart.

Настройка Jenkins GitLab Plugin

Заходим в Jenkins->Настроить Jenkins -> Конфигурирование системы. Ищем вкладку Gitlab.

В поле "Gitlab host URL" пишем адрес корня нашего GitLab сервера

В поле "API Token" пишем Api-token пользователя jenkins, которого мы создали на GitLab сервере.

Jenkins: настройки плагина GitLab Plugin

Нажимаем "Test Connection"

 

Настройка сборки проекта в Jenkins

Теперь пришло время настроить сборку конкретного проекта. Создадим в Jenkins новый проект. Назовём его, к примеру, MyProject1.

Настройка получения нужной ветки из Git-репозитория

Без этого шага вместо merge-реквестов Jenkins будет собирать ветку master текущего репозитория.

  1. В разделе "Управление исходным кодом" выбираем Git Repositories и указываем путь к нашему git-репозиторию. Дальше щёлкаем на кнопку дополнительный настроек и выставляем:
    Branch Specifier = origin/${gitlabSourceBranch}
  2. В разделе Additional Behaviours нажимаем Add и выбираем Merge before build.
  3. Задаём Name of repository: origin
  4. Задаём Branch to merge: ${gitlabTargetBranch}

 Пример настроек показан на картинке:

Настройки git-репозитория для Jenkins Gitlab Plugin

Настройка GitLab Plugin

Ищем раздел "Триггеры сборки" и ставим галочку "Build when a change is pushed to GitLab"

Пример настроек показан на картинке:

Jenkins настройки плагина для сборки GitLab plugin

 

Копируем "GitLab CI Service URL".

Ставим Hook для новых пул-реквестов в GitLab

Для этого открываем страницу проекта на GitLab.

Заходим в Settings -> Web Hooks и прописываем скопированный на предыдущем шаге адрес "GitLab CI Service URL"

 GitLab Web hooks для Jenkins

 

После добавления должна появиться кнопка "Test hook". Нажимаем её и убеждаемся, что в Jenkins запустится сборка нашего проекта MyProject1

Проверка

Для проверки создадим новый мерж-реквест.

Сразу же увидим, что в Jenkins запустилась сборка этого merge-request.

По окончании сборки увидим в GitLab сообщение от Jenkins:
GitLab результаты успешной сборки Jenkins

 

Добавить комментарий


Поиск