რა ხდება, როდესაც GitLab კოდს იღებს?
sobes.tech AI
პასუხი AI-სგან
GitLab, ახალი კოდის მიღების შემდეგ (საშუალოდ git push-ის საშუალებით), იწყებს პროცესს, რომელიც დამოკიდებულია პროექტის პარამეტრებზე:
-
Webhook-ები: როდესაც ახალი კოდი მოდის, GitLab შეუძლია გარეგან სისტემებს (მაგალითად, CI/CD სერვერი, პროექტის მართვის სისტემა) HTTP მოთხოვნების გაგზავნით გააფრთხილოს. ეს არის შემდეგი მოქმედებების გამშვები.
-
CI/CD პაიპლაინი: თუ პროექტში არის კონფიგურირებული
.gitlab-ci.ymlფაილი, GitLab Runner იწყებს CI/CD პაიპლაინის შესრულებას. ამ პროცესში შედის:.gitlab-ci.ymlფაილის სინტაქსის შემოწმება.- YAML-ფაილში განსაზღვრული სამუშაოების (jobs) შექმნა.
- სამუშაოების მიცემა ხელმისაწვდომ რანერებს.
- რანერი იღებს სამუშაოებს, ჩამოტვირთავს რეპოზიტორიის წყაროს კოდს.
- ასრულებს მითითებულ ბრძანებებს (შენება, ტესტირება, განთავსება და ა.შ.) თითოეულ სამუშაოზე.
- არტეფაქტების (შენებული პროგრამები, ტესტის ანგარიშები) და ლოგ ფაილების შენახვა.
- სამუშაოების შესრულების სტატუსის გაგზავნა GitLab-ში.
.gitlab-ci.ymlსტრუქტურის მაგალითი:stages: - build - test - deploy build_job: stage: build script: - echo "აპლიკაციის მშენებლობა..." - make build test_job: stage: test script: - echo "ტესტების გაშვება..." - make test deploy_job: stage: deploy script: - echo "აპლიკაციის განთავსება..." - make deploy only: - main # მხოლოდ main ბრენჩზე პუშის დროს -
ავტომატური მოქმედებები: GitLab შეუძლია სხვა ავტომატური მოქმედებების განხორციელებაც:
- Merge Request-ის შექმნა (პუშის დროს სხვა ბრენჩიდან, არა მიზნობრივიდან).
- Merge Request-ის სტატუსის განახლება.
- უსაფრთხოების სკანირების დაწყება (თუ შესაბამისი პარამეტრები გააქტიურებულია).
- სამუშაოების ავტომატური დახურვა ან დაკავშირება (კომიტების ან Merge Request-ის აღწერაში არსებულ საკვანძო სიტყვების საშუალებით).
-
შეტყობინების სისტემა: GitLab-ის მიერ მომხმარებლებს იგზავნება შეტყობინებები ელფოსტით ან სხვა არხებით (Slack, Mattermost), თუ ისინი გამოწერილი არიან რეპოზიტორიის მოვლენებზე (ახალი კომიტები, პაიპლაინის სტატუსები, კომენტარები).
-
რეპოზიტორიის მონაცემების განახლება: GitLab-ის შიდა სისტემაში განახლდება რეპოზიტორიის, ბრენჩების, ტეგების და კომიტების ისტორია.
სრული პროცესი მიზნად ისახავს ახალი კოდის ინტეგრირებას საერთო სამუშაო პროცესში, მშენებლობის, ტესტირების და შესაძლო განთავსების ავტომატიზაციას, ასევე დაინტერესებული მხარეების ინფორმირებას.