Default & Custom Env Varb

GitHub Actions’da Environment Variables (env vars) hem GitHub tarafından varsayılan olarak sağlanan bilgilerden (default env vars) hem de kendi tanımladığın değişkenlerden (custom env vars) oluşur. Bu değişkenlere, Workflow içindeki adımlarda (steps) direkt echo "$DEGISKEN_ADI" şeklinde ya da Actions expression syntax’ıyla (${{ env.DEGISKEN_ADI }}) erişebilirsin.

1) Default Environment Variables

GitHub, her job ve her step için otomatik tanımladığı bazı ortam değişkenlerini sağlar. Örnekler:

  • GITHUB_REF: Hangi branch veya tag üzerinde çalıştığını (refs/heads/main, refs/tags/v1.0.0) gösterir.

  • GITHUB_REPOSITORY: “Sahip/RepoAdı” formatında, örneğin “octocat/Hello-World”.

  • GITHUB_WORKFLOW: İş akışının adı (Workflow dosyasında name: ile belirttiğin değer).

  • GITHUB_ACTOR: İş akışını tetikleyen kullanıcı veya uygulamanın adı.

  • GITHUB_SHA: Tetiklenen commit’in SHA’sı.

  • RUNNER_OS, RUNNER_NAME, RUNNER_TEMP, RUNNER_ARCH gibi, çalıştığı runner’ın işletim sistemi, adı, mimarisi vb. bilgileri tutar.

Kullanım Örneği,

  • Bu step, GitHub’ın otomatik oluşturduğu değişkenleri terminal çıktısına basar.

  • “$GITHUB_REPOSITORY” gibi ifadeler, default environment variables’dan gelir.

2) Custom Environment Variables

Workflow içinde kendi istediğin değişkenleri de tanımlayabilirsin. Bu tanımlamaları üç farklı düzeyde yapabilirsin:

  1. Workflow Düzeyinde (env: en üstte)

  • Tüm job’lar ve step’ler, DAY_OF_WEEK ve API_URL değişkenlerini görebilir.

  1. Job Düzeyinde (env: job altında)

Sadece bu job içinde geçerli olur. Diğer job’lar bu değişkeni göremez.

  1. Step Düzeyinde (env: step altında)

  • Sadece bu step için geçerli olur, diğer step’lere aktarılmaz.

Koşul (if) İfadelerinde Kullanma

  • env değişkenlerini koşullu ifadelerde şöyle kullanabilirsin:

  • Burada “env.DAY_OF_WEEK” expression syntax içinde kullanılıyor.

İç İçe Yazma Sırası

  • GitHub Actions sırasıyla en üstteki “env” → job düzeyindeki “env” → step düzeyindeki “env” şeklinde okur.

  • Aynı isme sahip bir değişken en altta (step düzeyinde) yeniden tanımlanırsa, o step için bu en güncel değeri kullanır (override).

Özet

  1. Default Env Vars

    • GitHub’ın sağladığı “GITHUB_*”, “RUNNER_*” gibi değişkenlerdir (örneğin GITHUB_REF, GITHUB_WORKFLOW, RUNNER_OS).

    • Her step’te otomatik bulunur, “$GITHUB_REF” vb. şekilde kullanılır.

  2. Custom Env Vars

    • Kendi istediğin değerleri tanımlayıp $DEGISKEN_ADI şeklinde kullanırsın.

    • Düzeyler: Workflow, Job, Step.

    • Daha spesifik düzeyde tanımlanan env var, önceki düzeydekileri geçersiz kılar.

Last updated

Was this helpful?