GitLab CI/CD Nedir ve Nasıl Kullanılır?

Berkehan Bendivar
4 min readFeb 9, 2025

--

GitLab CI/CD, yazılım geliştirme süreçlerini otomatikleştirmek için GitLab tarafından sağlanan sürekli entegrasyon (CI) ve sürekli teslimat (CD) sistemidir. Kod değişikliklerinin test edilmesi, derlenmesi ve dağıtılması gibi işlemleri otomatik hale getirerek geliştirme sürecini hızlandırır ve hataları minimize eder. GitLab CI/CD, .gitlab-ci.yml adlı bir yapılandırma dosyası ile projeye entegre edilir ve belirlenen aşamalara göre pipeline’lar oluşturularak süreç yönetilir. Esnek yapısı ve geniş entegrasyon seçenekleri sayesinde hem küçük ekipler hem de büyük ölçekli projeler için ideal bir çözümdür.

GitLab CI/CD Nedir?

GitLab CI/CD, yazılım projelerinin geliştirme, test ve dağıtım süreçlerini otomatikleştirmek için kullanılan entegre bir sistemdir. Bu özellik yazılım yaşam döngüsünde aşağıdaki avantajları sağlar:

  • Hızlı Geri Bildirim: Hatalar hızlıca tespit edilir.
  • Otomasyon: İnsan hatasını minimuma indirir.
  • Kolay Dağıtım: Ürünleri hızlı ve güvenilir bir şekilde dağıtır.

GitLab CI/CD’nin Kullanım Alanları

GitLab CI/CD, modern yazılım geliştirme süreçlerinde geniş bir kullanım alanına sahiptir:

  1. Kod Kalitesini Artırma: Otomatik testler ile hataları erken tespit eder.
  2. Hızlı Dağıtım: Yazılımı kullanıcıya daha hızlı ulaştırır.
  3. Güvenli Dağıtım: Manuel onay mekanizmaları ile riskleri azaltır.
  4. Otomasyon: Tekrarlayan görevleri otomatize ederek ekiplerin iş yükünü azaltır.

GitLab CI/CD’nin Avantajları

  1. Kolay Entegrasyon: GitLab projeleriyle doğrudan uyumludur.
  2. Yüksek Esneklik: YAML tabanlı dosyalar ile ihtiyaçlara göre özelleştirilebilir.
  3. Dahili İşlevsellik: Ekstra araç kurulumuna gerek kalmaz.
  4. Kapsamlı Destek: Docker, Kubernetes gibi teknolojilerle sorunsuz çalışır.
  5. Detaylı İzleme: Pipeline süreçlerini görselleştirerek kolay takip sağlar.

GitLab CI/CD Nasıl Çalışır?

Temel Bileşenler

  1. Pipeline: Kodun derlenmesi, test edilmesi ve dağıtılması için kullanılan adımların bütünüdür.
  2. Jobs: Pipeline içindeki her bir işlem. Örneğin, “kod analizi” veya “test çalıştır.”
  3. Stages: Jobs, belirli aşamalarda (örneğin build, test, deploy) gruplanır.
  4. Runners: GitLab Runner, işleri çalıştıran bir servistir ve GitLab’ın kendi altyapısında veya kendi sunucularınızda çalıştırılabilir.

GitLab Fiyatlandırma

GitLab CI/CD, GitLab’in sunduğu bir özellik ve kullanım duruma göre ücretsiz veya ücretli olabilir.

Ücretsiz Kullanım (Free Plan)

  • Self-Managed (Kendi Sunucun): Eğer GitLab’ı kendi sunucunda çalıştırıyorsan, GitLab CI/CD’yi tamamen ücretsiz kullanabilirsin. Runner’ları kendin yöneterek sınırsız kullanım sağlayabilirsin.
  • GitLab.com (Bulut Servisi): Ücretsiz Free Plan kullanıcıları aylık 400 dakika CI/CD çalıştırabilir. (Bu limit GitLab Shared Runner’lar için geçerli.)

Ücretli Planlar

  • Daha fazla CI/CD dakikası veya özel özellikler için Premium veya Ultimate planlarına geçiş yapabilirsin.
  • Bulut (SaaS) Kullanıcıları ekstra CI/CD dakikaları satın alabilir.
  • Self-Managed kullanıcıları ise lisans yükselterek ek özelliklere erişebilir.

GitLab CI/CD’yi Kurulum Gerektirmeden Kullanma

1. .gitlab-ci.yml Dosyası Oluşturma

Projenizin kök dizininde .gitlab-ci.yml dosyasını oluşturun. Bu dosya, pipeline’ınızı yapılandırır.

Örnek Yapılandırma:

stages:

- build

- test

- deploy

build_job:

stage: build

script:

- echo “Building the application…”

- make build

test_job:

stage: test

script:

- echo “Running tests…”

- make test

deploy_job:

stage: deploy

script:

- echo “Deploying the application…”

- make deploy

2. GitLab Runner Kullanımı

  • GitLab SaaS kullanıyorsanız, GitLab’ın kendi barındırdığı Runners üzerinden işlem yapabilirsiniz.
  • Kendi sunucunuzda çalıştırmak için GitLab Runner kurabilirsiniz.

3. Pipeline Başlatma

  • .gitlab-ci.yml dosyasını ekledikten sonra kodunuzu commit ve push yapın.
  • GitLab, otomatik olarak bir pipeline başlatır.

4. Pipeline Sonuçlarını Takip Etme

  • CI/CD > Pipelines sekmesinden pipeline durumunu görüntüleyin.
  • Job detaylarına girerek hata mesajlarını inceleyebilirsiniz.

Kullanım Örnekleri

Örnek 1: Node.js Projesi İçin CI/CD

stages:

- test

test_job:

stage: test

image: node:14

script:

- npm install

- npm test

Örnek 2: Docker İmajı Oluşturma ve Dağıtım

stages:

- build

- deploy

build_job:

stage: build

script:

- docker build -t myapp:latest .

deploy_job:

stage: deploy

script:

- docker push myapp:latest

Örnek 3: Python Testleri Çalıştırma

stages:

- test

test_job:

stage: test

image: python:3.9

script:

- pip install -r requirements.txt

- pytest

GitLab CI/CD Kullanırken Dikkat Edilmesi Gerekenler

  • YAML Hataları: .gitlab-ci.yml dosyasındaki format hataları pipeline’ı başlatmaz.
  • Güvenlik: API anahtarlarını GitLab’ın CI/CD Variables özelliği ile saklayın.
  • Pipeline Optimizasyonu: Paralel job’lar ve cache kullanımı ile süreyi azaltın.
  • Runner Yönetimi: Büyük projelerde özel Runner’lar kullanarak kapasiteyi artırın.

GitLab CI/CD, yazılım geliştirme süreçlerini otomatize ederek daha hızlı ve güvenilir bir yazılım yaşam döngüsü sağlar. Kolay yapılandırılabilir olması, projelerinizin verimli bir şekilde yönetilmesine olanak tanır.

YAML dosyanızı yapılandırarak hemen bir pipeline başlatabilir ve CI/CD süreçlerini etkin şekilde kullanabilirsiniz.

Bir sonraki makalede farklı bir konuyu ele alacağız. Sorularınız veya önerileriniz varsa yorum yapmayı unutmayın! 😊

--

--

No responses yet