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:
- Runner otrzymuje polecenie wykonania zadania od orkiestratora CI/CD (np. GitLab CI/CD, GitHub Actions, Jenkins).
- Wraz z poleceniem przekazywane są informacje o zadaniu, w tym link do repozytorium, gałąź/commit i kontekst wykonania.
- Runner wykonuje operację klonowania repozytorium (lub jego części) do swojego tymczasowego lokalnego obszaru roboczego.
- 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).