Раннер аз коди барои иҷро гирифтан аз куҷо мегирад?
sobes.tech AI
Ҷавоб аз AI
Runner кодро барои иҷро кардан аз репозитории системаи назорати нусха, одатан тавассути протоколе монанди Git мегирад. URL-и мушаххаси репозиторӣ ва шоха (ё тег, commit) дар конфигуратсияи пайплайн, ки ин runner-ро оғоз мекунад, нишон дода мешавад.
Раванди гирифтани код метавонад чунин бошад:
- Runner фармони иҷрои вазифаро аз оркестратори CI/CD мегирад (масалан, GitLab CI/CD, GitHub Actions, Jenkins).
- Ҳамроҳ бо фармон, маълумот дар бораи вазифа, аз ҷумла пайванд ба репозиторӣ, шоха/commit ва контексти иҷро дода мешавад.
- Runner амалиёти клонинг аз репозиторӣ (ё қисми он) ба майдони кории муваққатии худ анҷом медиҳад.
- Пас аз клонинг муваффақ, runner ба commit, шоха ё тег муайяншуда мегузарад ва кор бо нусхаи дурустии коди лозимро таъмин мекунад.
Масалан, дар GitLab CI, фармони клонинг:
# Клонинг аз репозитории нишон дода дар тағйирёбандаи CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Вуруд ба директорияи лоиҳа
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Санҷиши commit лозим
git checkout "$CI_COMMIT_SHA"
Дар баъзе ҳолатҳо, агар cache вуҷуд дошта бошад, runner метавонад аввал санҷад, ки оё нусхаи маҳаллии репозиторӣ вуҷуд дорад ва танҳо git fetch ва git checkout барои навсозӣ ба ҳолати лозимро иҷро кунад, ба ҷои клонинг пурра.
Конфигуратсия, ки манбаи кодиро муайян мекунад, одатан дар файли YAML, ки пайплайнро тавсиф мекунад, нишон дода мешавад (масалан, .gitlab-ci.yml, .github/workflows/*.yml).