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ı:
- 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.
- 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.
- Commands: Her görev içinde,
.gitlab-ci.ymliçindekiscriptbö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.
- Dependencies (Bağımlılıklar): Görevler, önceki görevlerin sonuçlarına bağlı olabilir,
needsanahtar kelimesi kullanılarak. - Artifacts (Artefaktlar): Görevlerin sonuçları (örneğin, derlenmiş kod, test raporları, Docker imajları) artefakt olarak saklanabilir, indirilebilir veya sonraki görevlerde kullanılabilir.
- 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.
- 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.