Ի՞նչ է տեղի ունենում, երբ 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ֆայլի սինտաքսի ստուգում:- Տվյալների (jobs) ստեղծում YAML ֆայլի սահմանումներից:
- Տվյալների տրամադրում հասանելի ռաներներին:
- Ռաները ստանում է տվյալները, ներբեռնում է ռեպոզիտորիային աղբյուրային կոդը:
- Կատարում է նշված հրահանգները յուրաքանչյուր տվյալների համար (կառուցում, թեստավորում, տեղադրում և այլն):
- Ստեղծում է արխիվներ (կառուցված ծրագրեր, թեստային հաշվետվություններ) և լոգ ֆայլեր:
- Ուղարկում է տվյալների կատարման կարգավիճակը GitLab-ին:
Օրինակ
.gitlab-ci.ymlկառուցվածքը՝stages: - build - test - deploy build_job: stage: build script: - echo "Building the application..." - make build test_job: stage: test script: - echo "Running tests..." - make test deploy_job: stage: deploy script: - echo "Deploying the application..." - make deploy only: - main # Պայման միայն main ճյուղում push-ի ժամանակ -
Ավտոմատ գործողություններ: GitLab-ը կարող է կատարել այլ ավտոմատ գործողություններ՝
- Մերիջ Request (Merge Request) ստեղծում (երբ push է կատարվում այլ ճյուղից՝ բացի նպատակայինից):
- Մերիջ Request-ի կարգավիճակի թարմացում:
- Անվտանգության սկանավորումներ (եթե համապատասխան կարգավորումները ակտիվացված են):
- Աշխատանքների ավտոմատ փակումը կամ կապը (կոմմիտների կամ Merge Request-ի նկարագրության բանալի բառերով):
-
Հայտարարությունների համակարգ: GitLab-ը ուղարկում է տեղեկացումներ օգտվողներին էլեկտրոնային փոստով կամ այլ ալիքներով (Slack, Mattermost), եթե նրանք բաժանորդագրված են ռեպոզիտորիումի իրադարձություններին (նոր կոմմիտներ, պայպլայնի կարգավիճակներ, մեկնաբանություններ):
-
Տվյալների թարմացում ռեպոզիտորիում: GitLab-ը ներսից թարմացնում է ռեպոզիտորիու տվյալները՝ ճյուղեր, տեգեր և կոմմիտների պատմություն:
Ընդհանուր առմամբ, այս գործընթացը նպատակ ունի նոր կոդը ինտեգրելու ընդհանուր աշխատանքային գործընթացին, ավտոմատացնել կառուցումը, թեստավորումը և հնարավոր է՝ տեղադրումը, ինչպես նաև տեղեկացնել շահագրգիռ կողմերին։