Sobes.tech
Junior

Odkud runner získává kód k provedení?

sobes.tech AI

Odpověď od AI

Runner získává kód ke spuštění z repozitáře systému správy verzí, obvykle prostřednictvím protokolu jako Git. Konkrétní URL repozitáře a větev (nebo tag, commit) jsou uvedeny v konfiguraci pipeline, který spouští tohoto runnera.

Proces získávání může vypadat takto:

  1. Runner obdrží příkaz k vykonání úkolu od orchestrátora CI/CD (například GitLab CI/CD, GitHub Actions, Jenkins).
  2. Spolu s příkazem jsou předávány informace o úkolu, včetně odkazu na repozitář, větve/commitu a kontextu provádění.
  3. Runner provádí operaci klonování repozitáře (nebo jeho části) do svého dočasného místního pracovního prostoru.
  4. Po úspěšném klonování se runner přepne na specifikovaný commit, větev nebo tag, čímž zajistí práci s požadovanou verzí kódu.

Příklad příkazu klonování v GitLab CI:

# Klonování repozitáře uvedeného ve proměnné CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Přechod do adresáře projektu
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Kontrola požadovaného commitu
git checkout "$CI_COMMIT_SHA"

V některých případech, pokud je k dispozici cache, může runner nejprve zkontrolovat, zda existuje místní kopie repozitáře, a provést pouze git fetch a git checkout pro aktualizaci na požadovaný stav, místo úplného klonování.

Konfigurace, která určuje zdroj kódu, je obvykle uvedena v YAML souboru popisujícím pipeline (například .gitlab-ci.yml, .github/workflows/*.yml).