21 марта 2023 г.

Как настроить CI в Gitlab

Всего лишь еще один способ.

Для версии Gitlab 14.6.2, которую можно посмотреть, по URL /help/ вашего экземпляра.

Сразу хочу оговориться, что рассматривается вариант с экземпляром, развернутым на своём сервере.

Первое что нужно сделать - настроить Runner. Runner - это такой сервис, который выполняет работу, которую вы задаете в скрипте деплоя (рассмотрим ниже). Установить Runner можно на любой машине, даже локальной. Процесс установки для разных систем довольно подробно описан в документации Gitlab-а и там каких-либо подводных камней не замечено.

После установки надо зарегистрировать Runner. Сделать это можно больше чем в одном месте Gitlab-а. Для разных целей своё место. У нас будет Runner для проекта. Его настройки берутся в SettingsCI/CDRunners проекта. В секции Specific runners смотрим URL и токен.

В системе (будем считать, что это Ubuntu), где Runner установлен вызываем:

sudo gitlab-runner register

где и вводим URL и токен. Помимо URL и токена требуется name, чтобы понимать с каким Runner-ом мы имеем дело и executor, например shell. Остальные поля можно не заполнять. После успешного завершения команды обновим страницу Gitlab-а, где мы брали данные регистрации Runner-а. Там должен появиться Available specific runners с зеленым маркером. Если это не так, значит придется разбираться с проблемой самостоятельно.

Стоит отметить, что URL, указанный выше, должен соответствовать фактическому, по которому доступен Gitlab. У вас там может быть указан другой.

Далее, в SettingsRepositoryDeploy tokens проекта следует в поле Name написать имя, для идентификации нашего токена, выставить checkbox read_repository. Это нам сгенерирует пару Deploy Token username и сам токен (вида deploy-token-1 и xxxxxxxxxxxxxxxxxxxx). Запишите их себе куда-нибудь.

Чтобы сконфигурировать Runner - открываем файл его конфига /etc/gitlab-runner/config.toml и в секции [[runners]] нашего Runner-а добавляем строку clone_url = "https://gitlab+{USERNAME}>:{TOKEN}>@{DOMAIN}>", где:

  • {USERNAME} и {TOKEN} - это полученная чуть выше пара
  • {DOMAIN} - домен, на котором доступен ваш экземпляр Gitlab-а, например gitlab.example.ru

После этого перезапускаем сервис Runner-а:

sudo gitlab-runner restart

и проверяем, всё ли хорошо:

sudo gitlab-runner verify

Если вы не видите что-то типа Verifying runner... is alive, значит Runner не видит ваш Gitlab и с этим придется что-то делать, например в поле url конфигурации Runner-а подобрать-таки работающий вариант. Вообще верификацию Runner осуществляет запросом к API Gitlab-а, вида https://{DOMAIN}/api/v4/runners/verify.

Если же всё прошло как по маслу, то в репозиторий проекта добавляем файл .gitlab-ci.yml, например следующего содержания:

my-task:
  script:
    - pwd
    - ls -lah

В CI/CDPipelines жмём кнопку Run pipeline, потом еще раз и смотрим куда, что там пишется и уже настраиваем скрипт по своему разумению.

Комментариев нет:

Отправить комментарий