Sobes.tech
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:

  1. 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.
  2. 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.
  3. Commands: Hər bir vəzifə daxilində, .gitlab-ci.yml faylında script bö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.
  4. 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, needs açar sözü ilə.
  5. 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.
  6. 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.
  7. 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.