Sobes.tech
Junior

Runner bajariladigan kodni qayerdan oladi?

sobes.tech AI

AIdan javob

Runner kodni bajarish uchun versiya nazorat tizimining depozitidan oladi, odatda Git kabi protokol orqali. Aniq URL depozit va filial (yoki teg, commit) bu runnerni ishga tushiradigan pipeline konfiguratsiyasida ko'rsatiladi.

Olish jarayoni quyidagicha bo'lishi mumkin:

  1. Runner CI/CD orkestratoridan vazifani bajarish buyurmasini oladi (masalan, GitLab CI/CD, GitHub Actions, Jenkins).
  2. Buyurma bilan birga, vazifa haqida ma'lumotlar, jumladan, depoziting URL-si, filial/commit va bajarilish konteksti yuboriladi.
  3. Runner depozitni (yoki uning bir qismini) vaqtinchalik mahalliy ish joyiga klonlaydi.
  4. Muvaffaqiyatli klonlashdan so'ng, runner ko'rsatilgan commit, filial yoki tegga o'tadi va to'g'ri kod versiyasi bilan ishlashni ta'minlaydi.

GitLab CI uchun klonlash buyruqiga misol:

# CI_REPOSITORY_URL o'zgaruvchisida ko'rsatilgan depozitni klonlash
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Loyihaning katalogiga o'tish
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Kerakli commitni tekshirish
git checkout "$CI_COMMIT_SHA"

Ba'zan, agar kechiktirish mavjud bo'lsa, runner avval lokal nusxani tekshirishi mumkin va faqat git fetch va git checkout qilish orqali holatni yangilaydi, to'liq klonlash o'rniga.

Kod manbasini belgilovchi konfiguratsiya odatda pipeline tavsifi bo'lgan YAML faylida ko'rsatiladi (masalan, .gitlab-ci.yml, .github/workflows/*.yml).