Sobes.tech
Middle

Как работи GitLab Runner?

sobes.tech AI

Отговор от AI

GitLab Runner е агент, който изпълнява задачи за CI/CD. Той обменя данни с GitLab CI/CD чрез API. Когато в GitLab се случи събитие, което стартира пайплайн (например, commit), GitLab изпраща заявка към runner. Runner-ът получава задачата, клонира репозитория, изпълнява командите, описани в .gitlab-ci.yml, и изпраща резултата обратно в GitLab.

Ключови аспекти на работата:

  • Типове runners: Shared, Specific, Group. Различават се по обхвата на видимост и достъпност за проектите.
  • Executor (Изпълнител): Определя средата, в която ще се изпълняват задачите. Популярни изпълнители: shell, docker, kubernetes, virtualbox, ssh. Изборът на изпълнител влияе върху изолацията и средата за изпълнение.
  • Регистрация: Runner-ът се регистрира в GitLab с помощта на токен, свързвайки го с конкретен инстанс, група или проект.
  • Polling (Пулване): Runner-ът периодично пита GitLab за нови задачи.
  • config.toml: Конфигурационен файл, който определя настройките на runner-а, включително типа на изпълнителя, броя на паралелните задачи и други параметри.

Примерна структура на config.toml:

# глобални настройки
concurrent = 4

# настройки на runner-а
[[runners]]
  name = "my-docker-runner"
  url = "https://gitlab.com/"
  token = "YOUR_RUNNER_TOKEN"
  executor = "docker" # избор на изпълнител
  [runners.docker]
    tls_verify = false
    image = "ubuntu:latest" # образ при използване на docker изпълнител
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]