Sobes.tech
Middle

GitLab kodu aldıqdan sonra nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

GitLab, kodu qəbul etdikdə (adətən git push vasitəsilə), layihənin tənzimləmələrindən asılı olaraq, bir proses başlatır:

  1. Webhooklar: Yeni kod gəldikdə, GitLab xarici sistemləri (məsələn, CI/CD serverləri, layihə idarəetmə sistemləri) HTTP sorğuları göndərməklə məlumat verə bilər. Bu, növbəti hərəkətlər üçün tetikleyici rolunu oynayır.

  2. CI/CD boru xətti: Əgər layihədə .gitlab-ci.yml faylı konfiqurasiya olunubsa, GitLab Runner CI/CD boru xəttini işə salır. Bu proses aşağıdakıları əhatə edir:

    • .gitlab-ci.yml faylının sintaksisinin yoxlanması.
    • Yml faylındakı təriflərə əsasən vəzifələrin (jobs) yaradılması.
    • Vəzifələrin mövcud runnerlara təyin olunması.
    • Runner vəzifələri alır, depo kodunu yükləyir.
    • Hər vəzifə üçün göstərilən əmrləri icra edir (qurmaq, test etmək, yerləşdirmək və s.).
    • Artefaktları (qurulmuş tətbiqlər, test hesabatları) və log fayllarını saxlayır.
    • Vəzifələrin vəziyyətini GitLab-a geri göndərir.

    .gitlab-ci.yml strukturuna nümunə:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Tətbiqi qururam..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Testləri icra edirəm..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Tətbiqi yerləşdirirəm..."
        - make deploy
      only:
        - main  # Yalnız main branch-ə push zamanı tetiklenir
    
  3. Avtomatik hərəkətlər: GitLab başqa avtomatik hərəkətləri də edə bilər:

    • Merge Request yaradılması (fərqli branch-ə push ediləndə).
    • Merge Request-in vəziyyətinin yenilənməsi (əgər mövcuddursa).
    • Təhlükəsizlik skanerlərinin işlədilməsi (əgər konfiqurasiya olunubsa).
    • Commit-lərdə və ya Merge Request təsvirində açar sözlər vasitəsilə vəzifələrin avtomatik bağlanması və ya əlaqələndirilməsi.
  4. Bildiriş sistemi: GitLab istifadəçilərə elektron poçt və ya digər kanallar (Slack, Mattermost) vasitəsilə bildirişlər göndərir, əgər onlar depo hadisələrinə abunə olublarsa (yeni commitlər, boru xətti vəziyyətləri, şərhlər).

  5. Depo məlumatlarının yenilənməsi: Daxili olaraq, GitLab depo, branchlər, etiketlər və commit tarixi haqqında məlumatları yeniləyir.

Ümumilikdə, bu proses yeni kodu ümumi iş axışına inteqrasiya etmək, qurma, test və ehtimal ki, yerləşdirməni avtomatlaşdırmaq və maraqlı tərəfləri məlumatlandırmaq məqsədini daşıyır.