Junior
Odakle runner dobija kod za izvršenje?
sobes.tech АИ
Одговор од АИ
Runner preuzima kod za izvršenje iz sistema kontrole verzija, obično putem protokola kao što je Git. Konkretni URL repozitorijuma i grana (ili tag, commit) su navedeni u konfiguraciji pipeline-a koji pokreće ovog runner-a.
Proces preuzimanja može izgledati ovako:
- Runner prima komandu za izvršenje zadatka od CI/CD orkestratora (npr. GitLab CI/CD, GitHub Actions, Jenkins).
- Zajedno sa komandom, prenose se informacije o zadatku, uključujući link do repozitorijuma, granu/commit i kontekst izvršenja.
- Runner vrši operaciju kloniranja repozitorijuma (ili njegovog dela) u svoj privremeni lokalni radni prostor.
- Nakon uspešnog kloniranja, runner se prebacuje na specificirani commit, granu ili tag, obezbeđujući rad sa pravom verzijom koda.
Primer komande za kloniranje u GitLab CI:
# Kloniranje repozitorijuma navedenog u promenljivoj CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Ulazak u direktorijum projekta
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Provera potrebnog commita
git checkout "$CI_COMMIT_SHA"
U nekim slučajevima, ako postoji keširanje, runner može prvo da proveri da li postoji lokalna kopija repozitorijuma i da izvrši samo git fetch i git checkout za ažuriranje na potrebnom stanju, umesto potpunog kloniranja.
Konfiguracija koja definiše izvor koda obično je navedena u YAML fajlu koji opisuje pipeline (npr. .gitlab-ci.yml, .github/workflows/*.yml).