Ответ
Команды GitLab CI выполняются в runner'ах — специальных агентах, которые могут быть развернуты на разных платформах (Docker, Kubernetes, VM, bare-metal).
Пример .gitlab-ci.yml:
test_job:
script:
- echo "Hello, GitLab CI!"
tags:
- docker
Здесь tags указывает, какой runner должен выполнять задачу (например, runner с тегом docker).
Типы runner'ов:
- Shared — доступны для всех проектов в инстансе GitLab.
- Group/Project-specific — ограничены определенной группой или проектом.
- Autoscaled (например, в Kubernetes) — динамически создаются и удаляются.
Настройка runner'а:
gitlab-runner register --url "https://gitlab.com/" --token "TOKEN" --executor "docker"