Sobes.tech
Junior

Skąd runner pobiera kod do wykonania?

sobes.tech AI

Odpowiedź od AI

Runner pobiera kod do wykonania z repozytorium systemu kontroli wersji, zazwyczaj za pomocą protokołu takiego jak Git. Konkretny URL repozytorium oraz gałąź (lub tag, commit) są wskazane w konfiguracji pipeline'u, który uruchamia tego runnara.

Proces pobierania może wyglądać następująco:

  1. Runner otrzymuje polecenie wykonania zadania od orkiestratora CI/CD (np. GitLab CI/CD, GitHub Actions, Jenkins).
  2. Wraz z poleceniem przekazywane są informacje o zadaniu, w tym link do repozytorium, gałąź/commit i kontekst wykonania.
  3. Runner wykonuje operację klonowania repozytorium (lub jego części) do swojego tymczasowego lokalnego obszaru roboczego.
  4. Po pomyślnym sklonowaniu runner przełącza się na wskazany commit, gałąź lub tag, zapewniając pracę z odpowiednią wersją kodu.

Przykład polecenia klonowania w GitLab CI:

# Klonowanie repozytorium wskazanego w zmiennej CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Przejście do katalogu projektu
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Sprawdzenie potrzebnego commitu
git checkout "$CI_COMMIT_SHA"

W niektórych przypadkach, przy dostępnej pamięci podręcznej, runner może najpierw sprawdzić, czy lokalna kopia repozytorium istnieje i wykona tylko git fetch oraz git checkout, aby zaktualizować do potrzebnego stanu, zamiast pełnego klonowania.

Konfiguracja określająca źródło kodu jest zwykle wskazywana w pliku YAML opisującym pipeline (np. .gitlab-ci.yml, .github/workflows/*.yml).