Junior
GitLab kodu yüklədikdən sonra nə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Depoizi kodu yüklədikdən (repo klonladıqdan) sonra, GitLab CI/CD bir pipeline icra edir — .gitlab-ci.yml faylında təyin olunan və depozitoriyanın kök qovluğunda yerləşən vəzifələr (jobs) və mərhələlər (stages) toplusu.
Kod yükləndikdən sonra tipik bir pipeline-in əsas mərhələləri:
- Stages: Pipeline mərhələlərə bölünür və ardıcıl şəkildə icra olunur. Eyni mərhələdəki vəzifələr paralel şəkildə icra oluna bilər.
- Jobs: Hər bir vəzifə ayrı bir Runner-də icra olunur. Runner, GitLab CI/CD-dən işi alan və icra edən agentdir.
- Commands: Hər bir vəzifə daxilində,
.gitlab-ci.ymlfaylındascriptbölməsində göstərilən əmrlər yerinə yetirilir. Bu əmrlər aşağıdakıları əhatə edə bilər:- Layihənin qurulması (məsələn, kodun tərtibi, artefaktların paketlənməsi).
- Testlərin işlədilməsi (birlik, inteqrasiya və s.).
- Kod keyfiyyətinin yoxlanması (linting, statik analiz).
- Docker şəkillərinin yaradılması.
- Test, staging və ya istehsal mühitinə yerləşdirmə.
- Digər zəruri əməliyyatlar.
- Dependencies (Asılılıqlar): Vəzifələr əvvəlki vəzifələrin nəticələrindən asılı ola bilər,
needsaçar sözü ilə. - Artifacts (Artefaktlar): Vəzifələrin nəticələri (məsələn, tərtib olunmuş kod, test hesabatları, Docker şəkilləri) artefakt kimi saxlanıla bilər, yüklənə və ya növbəti vəzifələrdə istifadə oluna bilər.
- Caching (Keş): Asılılıqlar və ya müvəqqəti fayllar, vəzifələrin icrasını sürətləndirmək üçün keşdə saxlanıla bilər.
- Reporting (Hesabat): İcra nəticələri (uğur/uğursuzluq), loglar və artefaktlar GitLab interfeysində mövcuddur.
.gitlab-ci.yml-in təxmini strukturu:
stages: # Mərhələlərin təyini
- build
- test
- deploy
build_job: # Vəzifənin təyini
stage: build # Mərhələyə aid
script: # İcra olunacaq əmrlər
- echo "Layihə qurulur..."
- mvn package # Maven ilə qurma nümunəsi
artifacts: # Artefaktların saxlanması
paths:
- target/*.jar
test_job:
stage: test
script:
- echo "Testlər icra olunur..."
- mvn test # Testlərin icrası üçün nümunə əmri
needs: # Əvvəlki vəzifəyə asılılıq
- build_job
deploy_job:
stage: deploy
script:
- echo "Tətbiqin yerləşdirilməsi..."
- docker build -t my-app . # Docker şəkli qurma nümunəsi
- docker push my-app # Şəkli deposuta yükləmə nümunəsi
only: # Vəzifənin icrası şərti
- main # Yalnız main branch-də commit ediləndə
Bu şəkildə, kod yükləndikdən sonra, GitLab CI/CD istifadəçi tərəfindən təyin olunan iş prosesini idarə edir və tətbiqin qurulması, test edilməsi və yerləşdirilməsinə yönəldir.