Sobes.tech
Junior

Odkiaľ runner získava kód na vykonanie?

sobes.tech AI

Odpoveď od AI

Runner získava kód na vykonanie z repozitára systému správy verzií, zvyčajne prostredníctvom protokolu ako Git. Konkrétna URL repozitára a vetva (alebo tag, commit) sú uvedené v konfigurácii pipeline, ktorý spúšťa tohto runnera.

Proces získavania môže vyzerať takto:

  1. Runner dostane príkaz na vykonanie úlohy od orchestrátora CI/CD (napríklad GitLab CI/CD, GitHub Actions, Jenkins).
  2. Spolu s príkazom sú prenášané informácie o úlohe, vrátane odkazu na repozitár, vetvy/commit a kontextu vykonávania.
  3. Runner vykoná operáciu klonovania repozitára (alebo jeho časti) do svojho dočasného lokálneho pracovného priestoru.
  4. Po úspešnom klonovaní sa runner prepne na špecifikovaný commit, vetvu alebo tag, čím zabezpečí prácu s požadovanou verziou kódu.

Príklad príkazu klonovania v GitLab CI:

# Klonovanie repozitára uvedeného v premennej CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Prechod do adresára projektu
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Kontrola požadovaného commitu
git checkout "$CI_COMMIT_SHA"

V niektorých prípadoch, ak je k dispozícii cache, môže runner najskôr skontrolovať, či existuje lokálna kópia repozitára, a vykonať iba git fetch a git checkout na aktualizáciu na požadovaný stav, namiesto úplného klonovania.

Konfigurácia, ktorá určuje zdroj kódu, je zvyčajne uvedená v YAML súbore, ktorý opisuje pipeline (napríklad .gitlab-ci.yml, .github/workflows/*.yml).