Sobes.tech
Junior

Iš kurio šuolio gauna vykdymo kodą?

sobes.tech AI

Atsakymas iš AI

Runneris gauna kodą vykdyti iš versijų kontrolės sistemos saugyklos, dažniausiai per protokolą, tokį kaip Git. Konkretus saugyklos URL ir šaka (arba žymė, commit) nurodyti pipeline konfigūracijoje, kuris paleidžia šį runnerį.

Gavimo procesas gali atrodyti taip:

  1. Runneris gauna komandą vykdyti užduotį iš CI/CD orkestratoriaus (pvz., GitLab CI/CD, GitHub Actions, Jenkins).
  2. Kartu su komanda perduodama informacija apie užduotį, įskaitant nuorodą į saugyklą, šaką/commit ir vykdymo kontekstą.
  3. Runneris atlieka saugyklos (ar jos dalies) klonavimą į savo laikiną vietinį darbo aplinką.
  4. Sėkmingai klonavus, runneris pereina prie nurodyto commit, šakos ar žymės, užtikrindamas, kad dirba su teisinga kodo versija.

Pavyzdys, kaip naudoti git clone komandą GitLab CI:

# Klonuoti saugyklą, nurodytą kintamajame CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Pereiti į projekto katalogą
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Patikrinti reikalingą commit
git checkout "$CI_COMMIT_SHA"

Kai kuriais atvejais, jei yra cache, runneris gali pirmiausia patikrinti, ar yra vietinė kopija ir tik atlikti git fetch ir git checkout, kad atnaujintų būseną, vietoj pilno klonavimo.

Konfigūracija, kuri apibrėžia kodo šaltinį, dažniausiai nurodoma YAML faile, aprašančiame pipeline (pvz., .gitlab-ci.yml, .github/workflows/*.yml).