GitLab CI/CD Nedir?
Öncelikle CI/CD nedir, onu bir inceleyelim. CI, Sürekli Entegrasyon (Continuous Integration), yazılım geliştirme sırasında kodu sürekli olarak ana koda entegre etme sürecidir. CD ise Sürekli Teslimat (Continuous Delivery) veya Sürekli Dağıtım (Continuous Deployment) olarak iki şekilde tanımlanabilir. İkisi de yazılımın otomatik olarak derlenmesini, test edilmesini ve dağıtılmasını sağlayan süreçlerdir. GitLab ise bu süreçleri otomatikleştirmemize olanak tanır.
GitLab CI/CD Kurulumu
GitLab'ı kurmak için öncelikle bir GitLab hesabına ihtiyacınız olacak. GitLab’ın bulut tabanlı ve kendi sunucunuza kurabileceğiniz versiyonları bulunmaktadır. Ancak burada biz, en yaygın kullanılan GitLab Runner ile CI/CD pipeline kurulumunu anlatacağız.
Adım 1: GitLab Hesabı Oluşturun
İlk olarak, GitLab’a gidip bir hesap oluşturmanız gerekiyor. GitLab’a kaydolduktan sonra, yeni bir proje oluşturabilir veya mevcut bir projeyi seçebilirsiniz. Projeyi seçtikten sonra, projede yapacağınız her değişiklik, otomatik olarak test edilip dağıtılacak.
Adım 2: GitLab Runner'ı Kurun
GitLab Runner, GitLab’ın CI/CD süreçlerini çalıştıran küçük bir yazılımdır. Bunun için GitLab Runner’ı indirip, kurulum adımlarını takip etmeniz gerekiyor. Eğer Linux kullanıyorsanız, aşağıdaki komutları kullanabilirsiniz:
# GitLab Runner’ı kurmak için:
sudo apt-get install gitlab-runner
# Runner’ı başlatmak için:
sudo gitlab-runner start
Adım 3: GitLab Runner’ı Kaydedin
GitLab Runner’ı kurduktan sonra, GitLab projenizi bu runner’a kaydetmeniz gerekiyor. Bunun için GitLab projenizde bulunan “Settings” sekmesindeki “CI/CD” kısmına gidin. Burada, Runner kaydını yapabileceğiniz bir token bulunuyor. Bu token ile Runner’ınızı kaydedebilirsiniz:
sudo gitlab-runner register
Adım 4: GitLab CI/CD Dosyası Oluşturun
Şimdi sıra geldi asıl işin kalbine: .gitlab-ci.yml dosyasını oluşturmak. Bu dosya, GitLab’a hangi işlemleri yapmasını istediğinizi anlatan komutları içeren dosyadır. Örneğin, bir proje derlemek, testleri çalıştırmak ve ardından dağıtımı yapmak için bu dosyayı kullanabilirsiniz. İşte basit bir örnek:
stages:
- build
- test
- deploy
build:
stage: build
script:
- echo "Proje derleniyor..."
test:
stage: test
script:
- echo "Testler çalıştırılıyor..."
- exit 0
deploy:
stage: deploy
script:
- echo "Projeyi dağıtıyoruz..."
Bu dosya, GitLab’a 3 aşamalı bir işlem sırası tanımlar: derleme, test ve dağıtım. Kodunuzu her push ettiğinizde bu işlemler otomatik olarak çalışacaktır.
GitLab CI/CD Yönetimi
Kurulum işlemini tamamladıktan sonra, GitLab CI/CD’yi nasıl yöneteceğinize geliriz. GitLab, CI/CD süreçlerini çok kolay izleyebilmeniz için güzel bir arayüz sunar. Projenize her push attığınızda, GitLab otomatik olarak pipeline’ınızı çalıştırır ve her aşamanın başarılı olup olmadığını raporlar.
Adım 1: Pipeline’ları İzleyin
Projenizin ana sayfasında, CI/CD sekmesine tıkladığınızda, tüm pipeline’larınızı görebilirsiniz. Burada, her bir pipeline’ın durumu (başarılı, başarısız) ve hangi adımda olduğunu rahatça takip edebilirsiniz.
Adım 2: Hata Ayıklama
Eğer bir adımda hata alırsanız, hata mesajları ile birlikte logları da inceleyebilirsiniz. Bu loglar, hangi işlemin neden başarısız olduğunu anlamanıza yardımcı olur. Eğer testler başarısız oluyorsa, test scriptlerinizi düzenlemeniz gerekebilir.
Adım 3: Pipeline’ları Özelleştirme
GitLab CI/CD, .gitlab-ci.yml dosyanızda yaptığınız değişikliklere göre pipeline’larınızı özelleştirmenize olanak tanır. Örneğin, yalnızca belirli bir branch’e kod göndermişseniz o branch için özel pipeline’lar tanımlayabilirsiniz. Veya testleri sadece belirli dosyalar üzerinde çalıştırmak isteyebilirsiniz. GitLab’ın dokümantasyonu sayesinde tüm bu ayarları kolayca öğrenebilirsiniz.
Sonuç
GitLab CI/CD kurulumunu tamamladınız ve artık projelerinizin otomatik olarak derlenip test edilmesini ve dağıtılmasını sağlıyorsunuz. Bu, yazılım geliştirme sürecinizin hızlanmasını, hataların daha erken tespit edilmesini ve kodunuzu sürekli olarak iyileştirmenizi sağlar. Unutmayın, yazılım geliştirme sürecinde en önemli şey sürekli iyileşmektir. GitLab CI/CD, bunun için mükemmel bir araçtır.