GITLAB runner

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

Использование 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 18.


На сервере, который используется для примера установлен 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

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

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

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

gitlab runner3

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

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