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

  • 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

name: Multi-label example
on: [push]

jobs:
  build-linux-x64:
    runs-on:
      - self-hosted
      - linux
      - x64
    steps:
      - name: Build
        run: echo "Building on a self-hosted runner that is Linux and x64"
  • ฤฐ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?