Runners
GitHub Runners, GitHub Actions iş akışlarının (workflow’ların) hangi makine/ortam üzerinde çalışacağını belirler. Yani, bir job çalıştırıldığında aslında “runner” adı verilen bir sunucu ya da bilgisayar (sanal ortam) üzerinde adım adım komutların yürütülmesi gerçekleşir.
1) Runner Seçimi: runs-on
runs-on
YAML dosyanda
jobs.<job_id>.runs-on: <runner_type>
şeklinde belirttiğin kısım, job’un hangi işletim sistemi / ortamda çalışacağına karar verir.Örnek:
runs-on: ubuntu-latest
,runs-on: windows-latest
,runs-on: macos-latest
İstersen bir liste (array) olarak da verebilirsin. Ancak bu durumda runner, listedeki tüm etiketlere uyan bir runner bulmalıdır. (Örneğin
[self-hosted, linux, x64]
gibi.)
2) GitHub-Hosted Runner
GitHub’ın sağladığı hazır ortamlardır. Sen
ubuntu-latest
,windows-latest
gibi bir değer yazdığında, GitHub senin için otomatik olarak bir sanal makine oluşturur, iş akışı bittiğinde de o makineyi kapatır.Avantajları:
Kurulum / bakım gerektirmez. Tüm yönetimi GitHub yapar.
Otomatik ölçeklendirir (scaling): Talep arttığında yeni makineler ayarlayabilir.
Üç ana işletim sistemi (Ubuntu, Windows, macOS) varyantlarını sunar.
Dezavantajları:
Konfigürasyon ve işletim sistemi üzerinde kısıtlı kontrolün var. (Örneğin, root erişimi var ama custom kernel vb. kısıtlı.)
Kullanım limitleri (dakika/ay) veya ek ücretlendirmeler olabilir (özellikle özel planlarda).
Ortam paylaşımlı olduğundan, bazen belirli güvenlik / IP adresi / özel network ihtiyaçlarında sınırlamalar olabilir.
3) Self-Hosted Runner
Kendi sunucun (fiziksel makine, VM, hatta Raspberry Pi vb.) üzerine GitHub Actions runner uygulamasını kurarsın. Bu makine GitHub ile haberleşir ve Actions iş akışlarını orada çalıştırırsın.
Avantajları:
Tam denetim: Kullanacağın donanım, yazılım, OS sürümü tamamen sana bağlı.
Özel ağ / veri tabanlarına doğrudan erişim: Şirket içi kaynaklara ya da izole bir ağa erişmek istiyorsan, bu runner’ı o ağa koyabilirsin.
Performansını, bellek, disk, CPU gibi kaynakları istediğin gibi ölçeklendirebilirsin.
Dezavantajları:
Bakım ve güvenlik sorumluluğu sende. Makinenin güncellenmesi, güvenlik yamaları vb. senin görevin.
GitHub, o makineyi yönetmiyor; yani ek kapasite gerektiğinde otomatik oluşturmaz. Kendin ayarlamak zorundasın.
4) Standart Boyut vs. Larger Runners (GitHub-Hosted)
Standart Boyut: Ücretsiz planların sunduğu normal sanal makineler. Normal bellek/CPU kaynaklarıyla gelirler.
Larger (daha büyük makineler) veya “premium” runner seçenekleri, Team ya da Enterprise planlarda sunulur. Daha fazla RAM, CPU, disk alanı, sabit IP gibi özellikleri olabilir.
Büyük runner’lar genelde yüksek kaynak isteyen (çok parallel testler, büyük build’lar vb.) projelerde kullanılır.
5) Koşullar, Kotalar ve Özelleştirme
Koşullar / Kotalar:
GitHub Hosted Runner’larda dakikalık kullanım limitin olabilir (ücretsiz planlarda sınırlı, ücretli planlarda daha yüksek).
Self-hosted runner’da GitHub’ın dakika limiti yoktur; ama kendi altyapı maliyetin devreye girer.
Özelleştirme:
GitHub Hosted Runner’lar “hazır” ortamda belirli yazılımlar (Node, Python, Java, vs.) kurulu gelir.
Self-hosted ise tamamen istediğin yazılımı / sürümü kurmakta özgürsün.
Özetle,
GitHub-Hosted: Kolay kurulum, anında ölçeklendirme, üç temel işletim sistemine destek, paylaşımlı/standart ortamlara uygun.
Self-Hosted: Tüm kontrol ve bakım sende; özel ağ, özel donanım ve ihtiyaçlar varsa ideal.
Workflow’larda “runs-on: ubuntu-latest
” ya da “runs-on: self-hosted
” diyerek job’un hangi runner’da çalışacağını belirliyorsun. İhtiyacına ve projenin gereksinimlerine göre bu seçimi yaparsın.
Last updated
Was this helpful?