Furkan KapukayaYazılım geliştirme
Backend, API ve Veritabanı2 dk okuma

CI/CD Nedir? GitHub Actions ile Otomatik Test ve Dağıtım

Sürekli entegrasyon ve sürekli dağıtım kavramları, GitHub Actions ile .NET projesinde otomatik derleme, test, yayın ve gizli bilgi yönetimi için pratik başlangıç rehberi.

Kodu her değiştirdiğinizde elle derlemek, testleri çalıştırmak ve sunucuya dosya kopyalamak hem zaman alır hem hataya açıktır. CI/CD, bu adımları otomatikleştirir.

Kavramlar

  • CI (Continuous Integration, sürekli entegrasyon): Her kod gönderiminde proje otomatik olarak derlenir ve testler çalıştırılır. Hatalar dakikalar içinde fark edilir.
  • CD (Continuous Delivery/Deployment, sürekli teslim/dağıtım): Testleri geçen kod otomatik olarak test veya canlı ortama yayımlanır.

GitHub Actions

GitHub Actions, GitHub depolarında iş akışları tanımlamayı sağlar. İş akışları .github/workflows klasöründeki YAML dosyalarıyla tanımlanır.

name: build
on:
  push:
    branches: [ main ]
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '10.0.x'
      - run: dotnet restore
      - run: dotnet build --no-restore -c Release
      - run: dotnet test --no-build -c Release

Bu iş akışı her gönderimde ve her pull request'te projeyi derler ve testleri çalıştırır. Test yazımı için birim testi yazımıza bakabilirsiniz.

Dağıtım adımı

Testler geçtikten sonra:

  1. Uygulama yayın paketine dönüştürülür veya Docker imajı oluşturulur.
  2. Test ortamına otomatik yüklenir.
  3. Onaydan sonra canlı ortama alınır.

Statik siteler için GitHub Pages veya benzeri platformlara otomatik yayın da aynı mantıkla çalışır. Bkz. statik web sitesi.

Gizli bilgiler

Sunucu parolaları ve API anahtarları asla iş akışı dosyasına veya koda yazılmamalıdır. GitHub'ın şifreli "secrets" özelliği veya bulut sağlayıcılarıyla parola gerektirmeyen kimlik doğrulama yöntemleri kullanılmalıdır.

Güvenlik önerileri

  • Üçüncü taraf eylemleri güvenilir kaynaklardan seçin ve sürümlerini sabitleyin.
  • İş akışlarına yalnızca gereken izinleri verin.
  • Bağımlılık güncellemelerini otomatik tarayan araçları etkinleştirin.
  • Ana dalı korumaya alın; doğrudan gönderim yerine inceleme zorunlu olsun.

Kullanım kotaları

GitHub Actions, depo türüne ve plana göre farklı ücretsiz kullanım kotaları sunar. Özel depolarda dakika sınırlarını ve ücretlendirmeyi kontrol edin.

Sık sorulan sorular

Küçük bir ekip için CI/CD gerekli mi?

Tek kişilik projelerde bile otomatik test ve dağıtım zaman kazandırır ve gece yarısı yapılan elle dağıtım hatalarını önler.

GitHub dışında seçenek var mı?

Evet, GitLab CI, Azure DevOps ve diğer CI araçları benzer yetenekler sunar.

Sonuç

CI/CD, yazılım teslimini güvenilir ve tekrarlanabilir hale getirir. Git temelleri için Git ve GitHub başlangıç rehberi yazımıza, kurulum desteği için iletişim sayfamıza göz atabilirsiniz.