Sitede Ara

GitHub Actions CI/CD Pipeline Hazırlama Promptu

GitHub Actions ile otomatik kod dağıtımı süreçlerini yönetin. DevOps sürekli entegrasyon için en iyi yml dosyası oluşturma rehberi ve hazır promptlar.

GitHub Actions CI/CD Pipeline Hazırlama Promptu

İçindekiler

Yazılım geliştirme dünyasında hız ve hata payının düşürülmesi artık lüks değil bir zorunluluk haline geldi. Ben de uzun süredir projelerimde manuel süreçlerin yarattığı zaman kaybından kurtulmak için çeşitli yöntemler araştırdım ve nihayetinde otomatik kod dağıtımı dünyasına adım attım. GitHub Actions, bu noktada geliştiricilere sunduğu esneklik ile öne çıkıyor. Süreçlerinizi otomatize etmek, sadece kodunuzun kalitesini artırmakla kalmaz, aynı zamanda geliştirici deneyiminizi de kökten iyileştirir. Bu rehberde, modern bir yazılım projesinde ihtiyaç duyulan tüm adımları detaylandırarak, kendi devops sürekli entegrasyon hattınızı nasıl kurabileceğinizi anlatacağım.

GitHub Actions Temelleri ve Kurulum

GitHub Actions, deponuzda meydana gelen her türlü değişikliği tetikleyici olarak kullanmanıza olanak tanır. Sistemin kalbinde yer alan github yml dosyası, iş akışlarınızın tanımlandığı yerdir ve burada yaptığınız her hata veya yanlış yapılandırma, sürecin durmasına neden olabilir. Öncelikle, deponuz içerisinde .github/workflows dizinini oluşturmalısınız. Bu dizin içerisine ekleyeceğiniz yaml dosyaları ile sunucuya otomatik yükleme işlemlerini planlayabilirsiniz. Süreçlerin doğru işlemesi için aksiyonların hangi branch üzerinde tetikleneceğini belirlemek, güvenli bir CI/CD yapısının ilk adımıdır. Yapılandırmalarınızda çevresel değişkenleri (Secrets) kullanmak, şifrelerinizi korumak adına kritik bir öneme sahiptir.

YAML Yapılandırmasının İncelikleri

Bunu da Okuyabilirsin

Gümrükte Proforma Fatura Ne İşe Yarar?

Dosya Hiyerarşisi ve Adlandırma

Bir github yml dosyası hazırlarken, jobs ve steps hiyerarşisini doğru kurgulamak, hata ayıklamayı çok daha kolaylaştırır. Her bir job birbirinden izole çalışır ve gerektiğinde bu job'lar arasında veri transferi yapabilirsiniz. Otomasyonun gücü, işlerin paralel çalışmasıyla katlanarak artar. Örneğin, bir tarafta kodunuzun testleri koşarken diğer tarafta build süreci gerçekleşebilir. Doğru adlandırma kuralları, proje büyüdüğünde karmaşayı engeller. Geliştiricilerin, kodlarını sunucuya gönderdikleri her an, bu yapının otomatik olarak çalıştığını görmek, projeye duyulan güveni pekiştirir. İyi yapılandırılmış bir dosya, sistemin sürekliliğini garanti altına alır.

DevOps Süreçlerinde Entegrasyon

Sürekli Entegrasyonun Önemi

Modern bir devops sürekli entegrasyon yaklaşımı, hataların erkenden tespit edilmesini sağlar. GitHub Actions, entegrasyon sürecinde sadece kodunuzu derlemekle kalmaz, aynı zamanda linter ve test araçlarını kullanarak kalitenizi sürekli denetler. Eğer bir test başarısız olursa, sunucuya otomatik yükleme işlemi otomatik olarak engellenir. Bu sayede hatalı kodun üretim ortamına ulaşmasının önüne geçilmiş olur. Kaliteli kod üretimi, bu döngü sayesinde standart haline gelir. Bir geliştirici olarak bu süreci kurmak, projelerinizin daha profesyonel ve ölçeklenebilir olmasını sağlar. Sürecin her adımını izlemek için oluşturulan log kayıtları, sorun giderme aşamasında paha biçilemez bir kaynaktır.

Otomatik Dağıtımın Gerçekleşmesi

Bunu da Okuyabilirsin

İhracatta CIF Teslim Şekli Özellikleri

Sunucuya Bağlantı ve Güvenlik

Kodunuzun nihai adresi olan sunucuya güvenli erişim sağlamak, bu yolculuğun en hassas parçasıdır. SSH anahtarlarınızı GitHub'ın "Secrets" bölümüne tanımlayarak, sunucuya otomatik yükleme işlemini yetkisiz erişime kapalı hale getirebilirsiniz. Her dağıtım adımında, eski sürümlerin yedeklenmesi veya gerektiğinde roll-back yapabilme özelliği, altyapınızın dayanıklılığını artırır. Dağıtım stratejileri, projenin ölçeğine göre değişiklik gösterebilir; küçük projelerde doğrudan deployment yeterli olurken, büyük ölçekli uygulamalarda blue-green veya canary deployment teknikleri uygulanmalıdır. Bu otomasyon, manuel hataları sıfırlayarak, insan faktöründen kaynaklanan kaza risklerini ortadan kaldırır.

İleri Seviye Workflow Optimizasyonu

Dağıtımda Hız Kazandırma

İş akışlarınızı hızlandırmak için caching mekanizmalarını aktif olarak kullanmalısınız. Node_modules veya composer gibi paket bağımlılıklarını önbelleğe alarak, devops sürekli entegrasyon sürelerinizi dakikalardan saniyelere indirebilirsiniz. Ayrıca, matrix stratejisini kullanarak farklı işletim sistemleri ve runtime sürümlerinde aynı anda test yapabilirsiniz. GitHub Actions, paylaşılan aksiyonlar kütüphanesi sayesinde topluluk tarafından geliştirilmiş hazır araçları kullanmanıza olanak sağlar. Zaman yönetimi, DevOps kültürünün temelidir ve bu optimizasyonlar, geliştiricilerin asıl işleri olan kod yazmaya daha fazla vakit ayırmalarına olanak tanır. Verimli bir pipeline, her zaman geliştiricinin en iyi arkadaşıdır.

Hazır Pipeline Promptu ve Uygulama

Aşağıdaki prompt, karmaşık bir workflow oluşturmanızı kolaylaştıracaktır. Prompt içerisinde köşeli parantez içindeki değişkenleri; sunucu IP adresi, branch adı ve özel script yollarınızla değiştirmeniz gerekmektedir.

Bir GitHub Actions workflow dosyası oluştur. Bu dosya, 'main' branch'ine push yapıldığında tetiklensin. İş akışında önce kodları çek (checkout), Node.js ortamını kur, 'npm install' ve 'npm test' komutlarını çalıştır. Testler başarılı olursa, SSH kullanarak sunucuya bağlan ve [SUNUCU_IP] adresine kodları yükle. Dağıtım sırasında [UYGULAMA_DIZINI] klasörüne git ve 'pm2 restart' komutunu çalıştır. Tüm işlemler için 'secrets' içerisinde tanımlanan SSH_KEY değişkenini kullan. İşlemi başlatmadan önce 'otomatik kod dağıtımı' sürecinin loglarını raporla.

Bu yapılandırma, tüm geliştirme sürecinizi otomatize etmenize yardımcı olacaktır. Unutmayın ki, otomatik kod dağıtımı sadece bir teknik işlem değil, aynı zamanda projenin sürdürülebilirliği için benimsenmesi gereken bir disiplindir. Sürekli test edilen ve güvenli bir şekilde sunucuya gönderilen kodlar, yazılım projenizin uzun ömürlü olmasını sağlar. Başarıya giden yol, karmaşık işleri basit adımlara bölüp onları otomatize etmekten geçer. Bugün kendi github yml dosyası kurulumunuzu yapın ve farkı görün.

Sıkça Sorulan Sorular

GitHub Actions ücretli mi?

Public depolar için ücretsizdir, private depolar için aylık belirli bir dakika kotası sunulur.

Secrets nedir ve neden gereklidir?

Secrets, veritabanı şifreleri veya SSH anahtarları gibi hassas bilgileri güvenli bir şekilde saklamanızı sağlar.

GitHub Actions ile sunucuya nasıl dosya atarım?

Genellikle SCP veya RSYNC komutlarını kullanarak SSH üzerinden dosya transferi gerçekleştirebilirsiniz.

Workflow neden tetiklenmiyor olabilir?

YAML dosyasının .github/workflows dizininde olduğundan ve syntax hatası içermediğinden emin olun.

DevOps süreçlerinde test neden önemlidir?

Kodun yayına girmeden önce doğrulanması, canlı ortamda oluşabilecek büyük hataları önler.

Doğuşhan BALCI

Doğuşhan BALCI

Dijital Strateji, Web Tasarım & Yazılım Uzmanı