Gitlab runner


Gitlab runner — сервер, который выполняет тесты при каждом коммите в отдельном Docker контейнере. За счет него реализуется автоматическое тестирование кода.



Gitlab runner с gitlab runner


Использование Docker необязательно, есть и другие варианты, однако этот — самый распространенный.

runner-ы могут существовать для проектов индивидуально или быть быть общими для нескольких проектов. Во втором случае к репозиторию требуется ограничивать доступ или задавать тип Private.

runner-ы запускаются в Docker контейнерах для изоляции. На сервере нужен Docker.




Docker устанавливается обычно с официального сайта.

add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"

apt-get update && apt-get install docker-engine

Однако, для конкретного дистрибутива лучше выполнять установку по инструкции. Инструкция для Ubuntu.




На сервере, который используется для примера установлен Gitlab и Docker. На нем же будет runner.



Скачивание скрипта, который добавит репозиторий для Debian

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh -o /tmp/gl-runner.deb.sh



Сам скрипт запускается с указанием интерпретатора /bin/bash из консоли

/bin/bash /tmp/gl-runner.deb.sh



Теперь можно устанавливать runner (от имени root)

apt-get install gitlab-runner



gitlab runner служит для того чтобы обеспечивать связь между Docker и gitlab в обоих направлениях.



По пакету в консоли можно вызвать справку

gitlab-runner --help



Первой необходимой командой для того чтобы наладить связь между CI/CD и Docker является регистрация

gitlab-runner register



В диалоге будет последовательно выведено несколько вопросов.

Нужно указать coordinator (адрес, по которому доступен Gitlab или домен), токен, описание, gitlab-ci тэги( такие как stage, qa, build, deploy). Образ Docker можно взять минимальный alpine:ltest


gitlab-runner register


Токен для регистрации runner-а можно увидеть в настройках проекта. Потребуется перейти в Settings, CI/CD, Runners, нажать Expand. Токен будет отображаться на странице. На скриншоте приведена нужная страница, но токен указан чуть ниже и не виден.


gitlab-runner token


gitlab test


Перейдя в CI/CD можно увидеть коммиты для проекта. Один из них находится в состоянии Passed.

Нажав на Passed можно увидеть подробности. В данном случае это консольный вывод с успешно выполненным тестом.


gitlab runner3


Так выполняется работа с runner-ами и так они регистрируются на сервере. Runner-ов может быть много: индивидуальных и общих для нескольких проектов.


Если их много в конфигурационном файле можно использовать тэги или 'tags'. Тэги указывают какой gitlab runner использовать.

Читайте про файл .gitlab-ci.yml и автоматизированный запуск тестов, а также про gitlab registry.

Сказать спасибо