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:
-
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.
-
CI/CD boru hattı: Projede
.gitlab-ci.ymldosyası yapılandırılmışsa, GitLab Runner CI/CD boru hattını başlatır. Bu süreç şunları içerir:.gitlab-ci.ymldosyası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.ymlyapı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 -
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.
-
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).
-
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.