Работали ли вы с Shared Runner в GitLab?

«Работали ли вы с Shared Runner в GitLab?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. Shared Runner — это общий CI/CD-агент, доступный для всех проектов в инстансе GitLab. В моей практике я использовал их для сборки и тестирования некритичных проектов, где не требовалась особая изоляция или специфичное окружение.

Ключевые особенности и мой опыт:

  • Удобство: Не требует настройки раннера для каждого нового репозитория, что ускоряет развертывание пайплайнов для небольших команд.
  • Ограничения: Для задач, требующих повышенной безопасности (работа с секретами) или специфичных зависимостей, я всегда настраивал Self-hosted Runner. Shared Runner могут создавать очередь задач при высокой нагрузке, что влияет на время выполнения пайплайна.
  • Пример использования в .gitlab-ci.yml:

    stages:
      - test
    
    unit_tests:
      stage: test
      script:
        - echo "Запуск тестов на Shared Runner"
        - ./run_tests.sh
      # Явное указание тега shared является хорошей практикой
      tags:
        - shared

    В итоге, Shared Runner — отличный инструмент для стандартных задач, но для production-сборок и чувствительных workload'ов я предпочитаю использовать управляемые Self-hosted Runner.