Modül 2 · İş Akışı Orkestrasyonu · ⏱ 6 dk

GitHub Actions ile CI/CD

CI CD with GitHub Actions

Bu derste neler öğreneceksin

  • .github/workflows YAML yazar
  • Test + lint + build step i tanımlar
  • Kestra Git sync ile entegre eder

Robot Sağ Kolun

Kodunu yazdın, GitHub’a yükledin. Ama biri “Ya bozulduysa?” diye soruyor. İşte GitHub Actions: GitHub’da her push’ta otomatik test çalıştıran bir robot. Sana sağ kol gibi.

# .github/workflows/test.yml
name: Test
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install -r requirements.txt
      - run: pytest tests/

Bu dosyayı repo’ya koyduğun an, her git push yaptığında GitHub otomatik:

  1. Kodunu indirir
  2. Python 3.11 kurar
  3. requirements.txt’i yükler
  4. pytest tests/ çalıştırır

Yeşil tik = geçti. Kırmızı X = bozuldu, ekrana hata basar.

CI/CD Ne Demek?

  • CI (Continuous Integration): Kod her geldiğinde test/lint çalışsın.
  • CD (Continuous Deployment): Test geçtiyse otomatik olarak canlıya alınsın.

Bizim limonata dükkânında: Kestra’daki flow dosyaları GitHub’da duruyor, her değişiklikte test çalışıyor, sonra Kestra otomatik yeni sürümü çekiyor.

Kestra Git Sync

Kestra’nın güzel yanı: flow’ları GitHub’da tutabilirsin. Kestra, her X dakikada bir GitHub’dan flows/ klasörünü çeker:

# kestra config
kestra:
  git:
    url: https://github.com/senin/lemonade-flows.git
    branch: main
    path: flows/
    interval: 60s

Artık flow değiştirmek demek: VS Code’da YAML’ı düzenle, git push. Kestra 60 saniye içinde yeni sürümü çeker, schedule aktifse tetikler. Tam CD.

Bugün Yaptık

  • GitHub Actions’ın temel YAML yapısını öğrendik
  • CI/CD kavramını gördük (test + otomatik dağıtım)
  • Kestra Git sync ile flow’ları GitHub’dan çektik

Ellerini Kirlet

  1. lemonade-flows adında yeni bir GitHub repo oluştur.
  2. Yukarıdaki test.yml workflow’unu ekle, git push yap.
  3. GitHub’da Actions sekmesine git, çalışan işi gör.
  4. İçine sahte bir test ekle (tests/test_smoke.py), boz, kırmızı X’i gör, düzelt, yeşil tik’i gör.

Sıradaki

Bir sonraki ders: Robot egzersizi — pipeline’ı kağıtta yaz →