Назад к вопросам
Junior
74
questionbank

Откуда runner получает код?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Runner получает код из репозитория системы контроля версий. В зависимости от конфигурации и типа runner'а, это может быть:

  • Локальный файловый путь: Если репозиторий находится на той же машине или доступен по сетевому пути.
  • Git-репозиторий: Наиболее распространенный способ. Runner клонирует репозиторий, указанный в конфигурации задания пайплайна. Он использует данные аутентификации (ключи SSH, токены), предоставленные в настройках runner'а или переменных окружения.
  • Архив (zip, tar.gz): Реже, но возможно, если код предварительно упакован и доступен по URL или локальному пути.

Пример из GitLab CI:

# .gitlab-ci.yml
stages:
  - build

build_job:
  stage: build
  script:
    - echo "Клонируем репозиторий..."
    - git clone $CI_REPOSITORY_URL .
    - echo "Код получен."

В данном случае runner сам клонирует репозиторий, указанный в переменной окружения $CI_REPOSITORY_URL, которая автоматически предоставляется GitLab CI.

Пример из GitHub Actions:

# .github/workflows/main.yml
name: Build

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4 # Этот action клонирует репозиторий
    - name: Run something
      run: |
        echo "Код получен."
        # Дальнейшие шаги с кодом

В GitHub Actions часто используется стандартный actions/checkout action для клонирования репозитория.

Таким образом, основной механизм - это клонирование репозитория с использованием соответствующих протоколов (git, ssh, https) и аутентификационных данных.