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
Токен для регистрации runner-а можно увидеть в настройках проекта. Потребуется перейти в Settings, CI/CD, Runners, нажать Expand. Токен будет отображаться на странице. На скриншоте приведена нужная страница, но токен указан чуть ниже и не виден.
Перейдя в CI/CD можно увидеть коммиты для проекта. Один из них находится в состоянии Passed.
Нажав на Passed можно увидеть подробности. В данном случае это консольный вывод с успешно выполненным тестом.
Так выполняется работа с runner-ами и так они регистрируются на сервере. Runner-ов может быть много: индивидуальных и общих для нескольких проектов.
Если их много в конфигурационном файле можно использовать тэги или 'tags'. Тэги указывают какой gitlab runner использовать.
Читайте про файл .gitlab-ci.yml и автоматизированный запуск тестов, а также про gitlab registry.