Где выполняются команды для GitLab CI

«Где выполняются команды для GitLab CI» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Команды 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"