GitHub Actions’a Giriş

Machine Learning için CI/CD

Ravi Bhadauria

Machine Learning Engineer

GitHub Actions nedir?

  • GitHub Actions (GHA): pipeline’ları otomatikleştiren CI/CD platformu
  • Pipeline: iş ve veri akışını temsil eden adım dizisi
Machine Learning için CI/CD

GitHub Actions nedir?

Bir araba montaj hattında, motor takma, tekerlekleri yerleştirme ve gövdeyi boyama gibi görevleri yapan işçilerle farklı aşamaları gösteren görsel.

Machine Learning için CI/CD

GitHub Actions nedir?

GitHub Actions, depo checkout etme, kodu derleme, testleri çalıştırma veya uygulamayı dağıtma gibi yazılım projeleri için tanımlı eylem/adım serileri oluşturur.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
Machine Learning için CI/CD

GHA Bileşenleri: Event

  • Event: bir workflow’u tetikleyen depodaki belirli faaliyet
    • Push
    • Pull Request
    • Issue açma
Machine Learning için CI/CD

GHA Bileşenleri: Workflow

  • Workflow: bir veya daha fazla işi çalıştıran otomatik süreç
    • YAML dosyalarında tanımlanır
    • Olay ile otomatik tetiklenir
      • Elle çalıştırma da mümkün
    • Depodaki .github/workflows dizininde bulunur
    • Birden çok workflow tanımlanabilir
Machine Learning için CI/CD

GHA Bileşenleri: Steps ve Actions

  • Step: tekil iş birimi
    • Sırayla çalışır, önceki adıma bağlıdır
    • Aynı makinada çalışır; veri paylaşılabilir
    • İş birimi örnekleri
      • Derlenmiş uygulama, kabuk betiği
      • Action: GHA’ya özgü uygulama
        • Örn. depoyu checkout etme, PR’a yorum yapma
Machine Learning için CI/CD

GHA Bileşenleri: Jobs ve Runners

  • Job: step’lerden oluşan küme
    • Her job bağımsızdır
    • Paralel çalıştırılabilir
    • Runner adı verilen işlem makinelerinde yürütülür
Machine Learning için CI/CD

Basit bir GHA workflow’u

Bir depoda push olayıyla tetiklenen bir workflow’un, Ubuntu Linux runner üzerinde çalışan tek bir job içerdiğini gösteren görsel. Job, depoyu checkout etme ve Python kodu çalıştırma olmak üzere iki adımdan oluşur.

  • Event: Push
  • Job: Ubuntu runner üzerinde, iki step içerir
    • Action: Depoyu Checkout
    • Python Kodu Çalıştır
Machine Learning için CI/CD

Hepsini bir araya getirelim

Paralel job ve sıralı step yürütmesini özetleyen tipik bir GitHub Actions workflow bileşenleri görseli.

Machine Learning için CI/CD

Hadi pratik yapalım!

Machine Learning için CI/CD

Preparing Video For Download...