Sobes.tech
Middle

GitLab kodu aldıktan sonra ne oluyor?

sobes.tech yapay zeka

AI'dan gelen yanıt

GitLab, kodu aldığında (genellikle git push aracılığıyla), proje ayarlarına bağlı olarak bir süreç başlatır:

  1. Webhooks: Yeni kod geldiğinde, GitLab harici sistemleri (örneğin, CI/CD sunucuları, proje yönetim sistemleri) HTTP istekleri göndererek bilgilendirebilir. Bu, sonraki adımlar için bir tetikleyicidir.

  2. CI/CD boru hattı: Projede .gitlab-ci.yml dosyası yapılandırılmışsa, GitLab Runner CI/CD boru hattını başlatır. Bu süreç şunları içerir:

    • .gitlab-ci.yml dosyasının sözdizimi kontrolü.
    • Yml dosyasındaki tanımlamalara göre görevlerin (jobs) oluşturulması.
    • Görevlerin kullanılabilir çalışanlara atanması.
    • Çalışanların görevleri alması, depo kaynak kodunu indirmesi.
    • Her görev için belirtilen komutları çalıştırması (derleme, test, dağıtım vb.).
    • Artefaktları (derlenmiş uygulamalar, test raporları) ve günlük dosyalarını kaydetmesi.
    • Görevlerin durumunu GitLab'a geri bildirmesi.

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

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Uygulamayı derliyoruz..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Testleri çalıştırıyoruz..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Uygulamayı dağıtıyoruz..."
        - make deploy
      only:
        - main  # Sadece main dalına push yapıldığında tetiklenir
    
  3. Otomatik işlemler: GitLab başka otomatik işlemler de yapabilir:

    • Farklı bir dalda push yapıldığında Merge Request oluşturma.
    • Mevcutsa, Merge Request durumunu güncelleme.
    • Güvenlik taramaları yapma (ayarlandıysa).
    • Commitlerde veya Merge Request açıklamasında anahtar kelimeler aracılığıyla görevleri otomatik kapatma veya bağlama.
  4. Bildirim sistemi: GitLab, kullanıcılara e-posta veya diğer kanallar (Slack, Mattermost) aracılığıyla bildirim gönderir, eğer depo olaylarına abone olmuşlarsa (yeni commitler, boru hattı durumları, yorumlar).

  5. Depo verilerinin güncellenmesi: GitLab, dahili olarak depo, dallar, etiketler ve commit geçmişi hakkında verileri günceller.

Genel olarak, bu süreç yeni kodu genel çalışma akışına entegre etmeye, derleme, test ve muhtemelen dağıtımı otomatikleştirmeye ve ilgililere bildirimde bulunmaya yöneliktir.