Sobes.tech
Junior

GitLab kodu indirdikten sonra ne oluyor?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kodu indirdikten (depo klonlandıktan) sonra, GitLab CI/CD bir pipeline çalıştırır — .gitlab-ci.yml dosyasında tanımlanan görevler (jobs) ve aşamalar (stages) dizisi, bu dosya depo kök dizininde bulunur.

Kodu indirdikten sonra tipik bir pipeline’ın temel aşamaları:

  1. Stages: Pipeline, ardışık olarak yürütülen aşamalara bölünür. Aynı aşamadaki görevler paralel olarak yürütülebilir.
  2. Jobs: Her görev ayrı bir Runner’da yürütülür. Runner, GitLab CI/CD’den işi alan ve yürüten bir ajandır.
  3. Commands: Her görev içinde, .gitlab-ci.yml içindeki script bölümünde belirtilen komutlar çalıştırılır. Bu komutlar şunları içerebilir:
    • Projeyi derleme (örneğin, kod derleme, artefakt paketleme).
    • Testleri çalıştırma (birim testleri, entegrasyon testleri vb.).
    • Kod kalitesini kontrol etme (linting, statik analiz).
    • Docker imajları oluşturma.
    • Test, staging veya üretim ortamına dağıtım.
    • Diğer gerekli işlemler.
  4. Dependencies (Bağımlılıklar): Görevler, önceki görevlerin sonuçlarına bağlı olabilir, needs anahtar kelimesi kullanılarak.
  5. Artifacts (Artefaktlar): Görevlerin sonuçları (örneğin, derlenmiş kod, test raporları, Docker imajları) artefakt olarak saklanabilir, indirilebilir veya sonraki görevlerde kullanılabilir.
  6. Caching (Önbellekleme): Bağımlılıklar veya geçici dosyalar, görevlerin tekrar çalıştırılmasını hızlandırmak için önbelleğe alınabilir.
  7. Reporting (Raporlama): Çalıştırma sonuçları (başarılı/hata), loglar ve artefaktlar GitLab arayüzünde erişilebilir.

.gitlab-ci.yml yapısına örnek:

stages: # Aşamaların tanımı
  - build
  - test
  - deploy

build_job: # Görev tanımı
  stage: build # Aşamaya ait
  script: # Çalıştırılacak komutlar
    - echo "Projeyi derliyoruz..."
    - mvn package # Maven ile derleme örneği
  artifacts: # Artefaktların saklanması
    paths:
      - target/*.jar

test_job:
  stage: test
  script:
    - echo "Testler çalıştırılıyor..."
    - mvn test # Testleri çalıştırma örneği
  needs: # Önceki göreve bağımlılık
    - build_job

deploy_job:
  stage: deploy
  script:
    - echo "Uygulama dağıtılıyor..."
    - docker build -t my-app . # Docker imajı oluşturma örneği
    - docker push my-app # İmajı depoya gönderme örneği
  only: # Görevin çalıştırılması koşulu
    - main # Sadece main dalına yapılan commitlerde

Bu şekilde, kod indirildikten sonra, GitLab CI/CD kullanıcı tarafından tanımlanan iş akışını düzenler ve uygulamanın derlenmesi, test edilmesi ve dağıtılmasına odaklanır.