Junior
სადიდან იღებს რანერი შესრულებისთვის კოდს?
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).