Sobes.tech
Junior

Kust runner saab koodi täitmiseks?

sobes.tech AI

Vastus AI-lt

Runner saab koodi täitmiseks versioonihaldussüsteemi hoidlast, tavaliselt protokolli nagu Git kaudu. Konkreetne hoidla URL ja haru (või silt, commit) on märgitud pipeline'i konfiguratsioonis, mis käivitab selle runneri.

Võtmisprotsess võib välja näha järgmiselt:

  1. Runner saab käsu täita ülesannet CI/CD orkestratorilt (näiteks GitLab CI/CD, GitHub Actions, Jenkins).
  2. Koos käsuga edastatakse teave ülesande kohta, sealhulgas link hoidla, haru/commit ja täitmise kontekst.
  3. Runner teeb hoidla (või selle osa) kloonimise oma ajutisse kohalikku tööruumi.
  4. Pärast edukat kloonimist lülitub runner määratud commit'i, haru või sildi juurde, tagades, et töötab õige koodiversiooniga.

Näide GitLab CI kloonimiskäsust:

# Kloonib hoidla, mis on määratud muutujas CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Liigub projekti kataloogi
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Kontrollib vajaliku commit'i
git checkout "$CI_COMMIT_SHA"

Mõnel juhul, kui on vahemälu, võib runner esmalt kontrollida, kas lokaalselt on hoidla koopia olemas, ja teha ainult git fetch ja git checkout, et uuendada vajalikku olekut, mitte täielikult kloonida.

Konfiguratsioon, mis määrab koodi allika, on tavaliselt märgitud YAML-failis, mis kirjeldab pipeline'i (näiteks .gitlab-ci.yml, .github/workflows/*.yml).