GitHub Actions ile ilk CI hattı: her gönderimde testleri otomatik çalıştırmak

Editör 6 saat önce · 0 görüntülenme

Sürekli entegrasyon (CI), koda yapılan her değişiklikte testlerin ve derlemenin otomatik çalışmasıdır. "Bende çalışıyordu" sorununu büyük ölçüde ortadan kaldırır ve hatalar ana dala girmeden yakalanır. GitHub kullanıyorsan GitHub Actions ile birkaç dakikada başlayabilirsin.

İlk iş akışı

Depoda .github/workflows/ci.yml dosyası oluştur. Node.js projesi için örnek:

name: CI

on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: npm
      - run: npm ci
      - run: npm run lint
      - run: npm test

Dosyayı gönderdiğinde deponun Actions sekmesinde çalışmayı görürsün. Bir adım başarısız olursa hangi satırda hata verdiği kayıtlarda görünür. Python, Java, PHP gibi diller için de benzer setup-* adımları vardır; kullandığın eylemlerin güncel sürüm numaralarını kendi dokümantasyonlarından kontrol et.

Önerilen adımlar

  1. Bağımlılık kurulumu: npm install yerine npm ci kilit dosyasına sadık kalır ve daha tutarlıdır.
  2. Lint / biçim kontrolü: Basit hataları hızlıca yakalar.
  3. Testler
  4. Derleme: Uygulama derlenebiliyor mu?

Hızlı başarısız olan adımları öne koy; lint hatası varsa uzun testleri beklemeye gerek kalmaz.

Gizli bilgiler

API anahtarı ya da dağıtım şifresi gerekiyorsa dosyaya asla yazma. Depo ayarlarında Settings → Secrets and variables → Actions bölümünden ekle ve iş akışında şöyle kullan:

env:
  API_KEY: ${{ secrets.API_KEY }}

Fork'lardan gelen pull request'lerde gizli bilgilerin varsayılan olarak paylaşılmadığını unutma; bu bir güvenlik önlemidir.

Ana dalı koru

Settings → Branches (ya da Rulesets) bölümünden ana dal için "CI başarılı olmadan birleştirme yapılamasın" kuralı ekle. Böylece testi geçmeyen kod main'e giremez.

Dağıtım (CD) adımı

CI oturduktan sonra testler geçtiğinde otomatik dağıtım ekleyebilirsin: statik siteyi yayınlamak, Docker imajı derleyip kayıt deposuna göndermek ya da sunucuya SSH ile bağlanıp güncellemek gibi. Üretim ortamına otomatik dağıtım yapacaksan önce test ortamında denemek ve geri alma (rollback) yolunu belirlemek iyi bir alışkanlıktır.

Maliyet

Açık (public) depolarda standart çalıştırıcılar ücretsizdir; özel (private) depolarda aylık ücretsiz dakika kotası vardır. Güncel kotaları GitHub'ın faturalandırma sayfasından kontrol et. Gereksiz yere her dalda ağır iş akışı çalıştırmamak kotayı korur.

Kendi iş akışın hata veriyorsa YAML dosyasını ve hata kaydını (gizli bilgileri çıkararak) bu konunun altına ekleyebilirsin.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi

  • Açılış12.11.2026
  • Son etkinlik6 saat önce
  • Cevap0
  • Görüntülenme0
  • Beğeni0
Yeni konu aç