Junior
Ի՞նչ է տեղի ունենում, երբ GitLab-ը ներբեռնում է կոդը։
sobes.tech AI
Պատասխան AI-ից
Հետո, ինչքան որ կցանկանաք բեռնել կոդը (ռեպոզիտորիայի կլոնավորում), GitLab CI/CD իրականացնում է պայպլայն — աշխատանքների (jobs) և փուլերի (stages) հավաքածու, որոնք սահմանված են .gitlab-ci.yml ֆայլում ռեպոզիտորիայի հիմնական թղթապանակում:
Հիմնական փուլերը սովորական պայպլայնի հետո բեռնելու կոդը՝
- Stages: Պայպլայնը բաժանվում է փուլերի, որոնք կատարվում են հերթականությամբ։ Մի փուլում գտնվող աշխատանքները կարող են կատարվել միաժամանակ։
- Jobs: Ամեն աշխատանք կատարվում է առանձին Runner-ում։ Runner-ը գործակալ է, որը վերցնում է աշխատանքը GitLab CI/CD-ից և իրականացնում է այն։
- Commands: Ամեն աշխատանքում կատարվում են
scriptբաժնում նշված հրամանները.gitlab-ci.yml-ում։ Այս հրամանները կարող են ներառել՝- նախագծի հավաքում (օրինակ՝ կոդի կոմպիլացիա, արգումենտների հավաքում)։
- թեստեր գործարկել (յուրային թեստեր, ինտեգրացիոն թեստեր և այլն)։
- կոդի որակի ստատիկ վերլուծություն (linting, ստատիկ վերլուծություն)։
- Docker պատկերների ստեղծում։
- Դեպլոյ (տարածում) թեստային, staging կամ production միջավայրում։
- այլ անհրաժեշտ գործողություններ։
- Dependencies (Հետևյալություններ): Աշխատանքները կարող են կախված լինել նախորդ աշխատանքների արդյունքներից, օգտագործելով
needsբանալի բառը։ - Artifacts (Արտեֆակտներ): Աշխատանքների արդյունքները (օրինակ՝ կոմպիլացված կոդ, թեստերի հաշվետվություններ, Docker պատկերներ) կարող են պահպանվել որպես արտեֆակտներ, որոնք հասանելի են ներբեռնելու կամ օգտագործելու հաջորդ աշխատանքներում։
- Caching (Կեշավորում): Հետևյալությունները կամ ժամանակավոր ֆայլերը կարող են կեշավորվել աշխատանքների միջև՝ կատարման արագացման համար։
- Reporting (Հաշվետվություն): Կատարման արդյունքները (հաջողություն/չհաջողություն), լոգերը և արտեֆակտները հասանելի են GitLab ինտերֆեյսում:
Նմուշային .gitlab-ci.yml կառուցվածքը՝
stages: # Փուլերի սահմանում
- build
- test
- deploy
build_job: # Աշխատանքի սահմանում
stage: build # Փուլի մաս
script: # Կատարելի հրամաններ
- echo "Building the project..."
- mvn package # Maven-ի համար կառուցման օրինակային հրամանը
artifacts: # Արտեֆակտների պահպանում
paths:
- target/*.jar
test_job:
stage: test
script:
- echo "Running tests..."
- mvn test # Թեստերի գործարկման օրինակ
needs: # Նախորդ աշխատանքի կախվածություն
- build_job
deploy_job:
stage: deploy
script:
- echo "Deploying the application..."
- docker build -t my-app . # Docker պատկեր ստեղծելու օրինակ
- docker push my-app # Պատկեր ուղարկելու օրինակ
only: # Շրջանակային պայման
- main # Միայն main ճյուղում կատարելու համար
Այսպիսով, կոդը բեռնելուց հետո, GitLab CI/CD-ը կազմակերպում է որոշված աշխատանքային գործընթացը, որը ուղղված է հավելվածի կառուցմանը, թեստավորմանը և տեղակայմանը։