Expressions - 2
1) Metin İşleme Fonksiyonları
contains(search, item)
Belirtilen
searchdizesindeitemifadesi geçip geçmediğini kontrol eder.Örnek:
if: ${{ contains('Hello world', 'llo') }}→truedöner, çünkü “llo” “Hello world” içinde geçiyor.Bir YAML satırında:
if: ${{ contains(github.event.head_commit.message, '[deploy]') }}Böylece commit mesajında [deploy] geçiyorsa job ya da step çalışır.
startsWith(searchString, searchValue)
searchStringdeğeri,searchValueile başlıyor mu diye bakar.Gerçek senaryoda branch kontrolü:
if: ${{ startsWith(github.ref, 'refs/heads/feature-') }}Eğer branch adı feature- ile başlıyorsa step’i çalıştır.
endsWith(searchString, searchValue)
searchStringdeğeri,searchValueile bitiyor mu diye bakar.Örnek:
Tag kontrolü:
if: ${{ endsWith(github.ref, '/v1.0.0') }}Branch ya da tag 'v1.0.0' ile bitiyorsa çalıştır.
2) Dize Birleştirme ve Biçimlendirme
format(string, replaceValue0, replaceValue1, ...)
Metin içindeki
{0},{1},{2}alanlarını sırasıyla girilen değerlerle değiştirir.Örnek:
format('Hello {0} {1}', 'Mona', 'Octocat')→"Hello Mona Octocat".Bir “echo” komutunda kullanmak için:
run: echo "${{ format('Deploying version {0} to {1}', '1.2.3', 'production') }}"join(array, optionalSeparator)
Array (dizi) elemanlarını birleştirir, istersen araya özel bir ayırıcı (separatör) koyar.
Örnek:
join(github.event.issue.labels.*.name, ', ')→ Issue üzerindeki label isimlerini virgülle birleştirir.Ya da manuel array:
join(['apple','orange','banana'], ' | ')→"apple | orange | banana".
3) JSON İşleme
toJSON(value)
Verilen değişkeni ya da nesneyi JSON formatına çevirir (string olarak).
Örnek:
if: ${{ toJSON(job) }}→ O anki job nesnesini JSON’a döndürür (daha çok debug amaçlı).Step içinde:
run: echo '${{ toJSON(github.event) }}'Bu şekilde event içeriğini JSON formatında görürsün.
fromJSON(value)
JSON formatındaki bir string’i GitHub Actions içinde bir nesneye dönüştürür.
Örnek:
fromJSON('{"name": "Mona", "role": "Octocat"}').role→"Octocat".Eğer
client_payload’da karmaşık bir JSON varsa bu fonksiyonla parse edebilirsin.
4) Dosya Hash Fonksiyonu
hashFiles(path)
Belirtilen dosya/dosyaların içeriğini hash’leyip tek bir hash döndürür.
Örnek:
hashFiles('**/package-lock.json', '**/Gemfile.lock')→ Bu dosyaların toplu içeriğinin bir karmasını (hash) üretir.Genelde cache kullanırken “cache key” üretmek için kullanılır. Örnek:
- name: Cache dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}Last updated
Was this helpful?