Expressions - 1
name: example-workflow
on: [push]
jobs:
demo-job:
runs-on: ubuntu-latest
steps:
- name: Step 1 - Her Zaman Çalışır
run: echo "Step 1 started"
- name: Step 2 - Branch 'feature-' ile Başlarsa
if: ${{ startsWith(github.ref, 'refs/heads/feature-') }}
run: echo "Bu step, feature- ile başlayan branch'lerde çalışır"
- name: Step 3 - Commit Mesajında 'CI-TEST' varsa
if: ${{ contains(github.event.head_commit.message, 'CI-TEST') }}
run: echo "Commit mesajında 'CI-TEST' var!"
- name: Step 4 - Önceki Adımlar Başarılıysa
if: ${{ success() }}
run: echo "Önceki adımlar HATA almadan tamamlandıysa burası çalışır"
- name: Step 5 - Önceki Adımlar Hata Aldıysa
if: ${{ failure() }}
run: echo "Önceki adımların en az biri hata aldıysa burası çalışır"
- name: Step 6 - Negatif (Ters) Koşul Kullanımı (!)
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: echo "Eğer push tag ile tetiklenmediyse (tags ile başlamıyorsa) bu step çalışır"
Step 1 (Her Zaman Çalışır)
Koşul olmadığı için push tetiklendiğinde mutlaka çalışır.
“echo” komutuyla basit bir çıktı verir.
Step 2 (Branch ‘feature-’ ile Başlarsa)
startsWith(github.ref, 'refs/heads/feature-')
ifadesi, branch adınınrefs/heads/feature-...
biçiminde mi başladığını kontrol eder.Eğer branch adı “feature-” ile başlamıyorsa adım atlanır.
Step 3 (Commit Mesajında ‘CI-TEST’ Varsa)
contains(github.event.head_commit.message, 'CI-TEST')
ifadesi, son commit mesajının içinde “CI-TEST” kelimesi geçip geçmediğine bakar.Commit mesajı “CI-TEST” içeriyorsa adım çalışır, içermiyorsa adım atlanır.
Step 4 (Önceki Adımlar Başarılıysa)
success()
fonksiyonu, o ana kadarki adımların tamamının hatasız bittiğini gösterir.Önceki adımlardan biri bile hata (fail) alsa bu adım çalışmaz.
Step 5 (Önceki Adımlar Hata Aldıysa)
failure()
fonksiyonu, bir önceki adım veya adımlardan herhangi birinin hata aldığını ifade eder.Eğer hata durumu yoksa bu adım atlanır.
Step 6 (Negatif Koşul, Tag Olmadığında)
!startsWith(github.ref, 'refs/tags/')
ifadesi, push işleminin “refs/tags/” ile başlayıp başlamadığını tersine (negation) çevirerek sorgular.Tag push’u değilse adım çalışır, tag push’u ise adım atlanır.
Last updated
Was this helpful?