Ответ
В GitLab CI/CD раннеры классифицируются по области видимости и исполнителю (executor).
По области видимости:
- Shared Runners (Общие): Раннеры, доступные для всех проектов в инстансе GitLab. Обычно управляются администраторами.
- Group Runners (Групповые): Раннеры, доступные всем проектам внутри определенной группы.
- Project Runners (Проектные): Раннеры, закрепленные за конкретным проектом.
По исполнителю (способу выполнения jobs):
- Shell: Запускает job в shell (bash, PowerShell) на машине, где установлен раннер.
- Docker: Запускает каждый job в отдельном Docker-контейнере. Это наиболее популярный и изолированный вариант.
- Kubernetes: Запускает job внутри Pod'а в Kubernetes-кластере.
- Docker Machine + autoscaling: Позволяет автоматически масштабировать раннеры на облачных инстансах (например, AWS EC2).
- SSH, VirtualBox, Parallels: Для специфических сценариев.
Теги (tags) используются для направления jobs на определенные раннеры. Например, job с тегом aws будет выполнен только на раннере, которому присвоен этот тег.
# .gitlab-ci.yml
deploy_to_prod:
stage: deploy
tags:
- shell # Будет запущен на раннере с executor=shell
- aws # и тегом 'aws'
script:
- ./deploy.sh