Set Env Varb with Workflow Commands
GitHub Actions’da $GITHUB_ENV adlı özel bir dosyaya yazarak, runtime adımlar arasında dinamik environment değişkeni paylaşabilirsin. Bu yöntem, sabit YAML tanımlarından farklı olarak “script” içinde hesapladığın veya dış kaynaktan okuduğun değerleri sonraki adımlara aktarır.
1) $GITHUB_ENV Nedir?
“
$GITHUB_ENV
”, bir özel dosya referansıdır.
Bir Step içerisinde,
diye yazarak, sonraki adımlar için “MY_VAR” adlı bir environment değişkeni atamış olursun.
Yani “workflow command” dediğimiz bu “echo … >> $GITHUB_ENV” yapısı, CI/CD hattı boyunca env değişkenleri eklemeni/üzerinde oynamanı sağlar.
2) Neden Kullanılır?
Step’ler Arası Veri Aktarmak: Bir step içindeki script, dinamik bir değer üretir; bunu
$GITHUB_ENV
yoluyla kaydedip sonraki step’te kullanabilirsin.Koşullu ve Dinamik Konfigürasyon: Örneğin “test sonu başarısına göre bir bayrak set et” gibi mantıklar kurgulayabilirsin.
Sabit YAML env’lerine göre daha esnek. Çünkü workflow dosyasında kodlaman gerekmeden, anlık hesaplanan veya dış API’den alınan değerleri paylaşabilirsin.
3) Basit Örnek
Step 1 (“Set dynamic environment variable”):
echo "DYNAMIC_VAR=Hello from GitHub Actions" >> $GITHUB_ENV
→ DYNAMIC_VAR’ı sonraki adımlar için tanımladı.
Step 2 (“Use the environment variable”):
echo "The value of DYNAMIC_VAR is: $DYNAMIC_VAR"
→ Step 1’de set edilen değişkeni okur ve terminale basar.
4) Dikkat Edilecekler
$GITHUB_ENV
üzerinden set ettiğin değişken, o job’un geri kalan step’lerinde kullanılabilir. Farklı job’larda otomatik paylaşılmaz. (Job’lar arası veri paylaşımı için “outputs” veya “needs” mekanizmasına bakabilirsin.)Sonraki step’te kullanılabilmesi için, önceki step’in tamamen bitmiş (success/fail) olması gerekir.
Daha önce tanımlanmış bir değişkeni
$GITHUB_ENV
ile yeniden yazarsan, yeni değeri override eder.
Kapsam: Aynı job içindeki ilerleyen adımlar.
Last updated
Was this helpful?