Add Script to workflow
GitHub Actions içerisinde kendi bash script’lerini (veya benzer komut dosyalarını) nasıl çalıştırabileceğin üzerine odaklanıyor. Normalde “run:” satırlarıyla tek satırlık veya birkaç satırlık komutları çalıştırabiliyorsun; fakat uzun veya karmaşık işlemler için bunları .sh gibi script dosyalarında tutmak daha düzenli olur. GitHub Actions, bu script’leri repo içinde saklamana ve iş akışı sırasında çağırmana imkan tanır.
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script (in ./scripts)
run: ./my-script.sh
- name: Run another script (in ./scripts)
run: ./my-other-script.sh
- name: Different Working Dir
run: ls -la
working-directory: ../
- name: Run script with direct path
run: ../other-scripts/some-other.sh
# Burada "scripts" klasöründen bir üst dizine (../) çıkıp
# "other-scripts" klasörüne girerek "some-other.sh" dosyasını çalıştırıyoruz.1) runs-on: ubuntu-latest
runs-on: ubuntu-latestBu, job’un Ubuntu işletim sisteminde çalışan bir runner üzerinde çalışacağını belirtir.
Dolayısıyla
.sh(bash) komut dosyaları varsayılan olarak desteklenir.
2) defaults.run.working-directory: ./scripts
defaults.run.working-directory: ./scriptsdefaults.runbloğu ile, job içerisindeki tümrun:satırlarının varsayılan çalışma dizinini (working-directory) ayarlıyorsun.Burada
./scriptsdendiği için, repo’nun checkout edildikten sonraki kök dizininde bulunan “scripts” klasörüne gidiliyor.Yani “run: ./my-script.sh” gibi komutlar,
scriptsklasöründen çağrılmış oluyor.
Sık Karşılaşılan Sorunlar
İzinler: Script’e çalıştırma izni (executable permission) verilmemişse (
chmod +x my-script.sh), script çalışmaz. Genellikle repo’da commit’lerken yürütme iznini korumak gerekir.Yanlış Path: “
defaults.run.working-directory” yoksa, script için tam yolu yazman (./scripts/my-script.sh) veyacd scriptskomutu kullanman gerekir.Shebang: Script dosyası başında
#!/usr/bin/env bashgibi bir shebang satırı kullanman önerilir (özellikle farklı shell’lerde tutarlılık için).
Özet
Checkout step’iyle repo kodunu indir.
defaults.run.working-directory: ./scriptsdiyerek job içindeki tüm komutların “scripts” klasöründe çalışmasını sağla (isteğe bağlı).run: ./my-script.shdiyerek script’ini çağır.Script dosyası içinde istediğin karmaşık komutları saklayabilir, bakımını kolaylaştırırsın.
Böylece “Add Script to Workflow”, yani GitHub Actions’da .sh (veya diğer dillerde) script dosyalarını iş akışında kullanma konusu netleşmiş oluyor.
Last updated
Was this helpful?