Workflow & Schedule Triggers
Workflow Nedir?
GitHub Workflow, yazılım geliştirme süreçlerinizi otomatikleştirmenize olanak tanıyan, GitHub Actions'ın temel yapı taşlarından biridir. Bir workflow, belirli olaylar gerçekleştiğinde (örneğin, kod push'ları, pull request'ler) otomatik olarak tetiklenen ve bir dizi işi (job) sıralı veya paralel olarak çalıştıran bir süreçtir. Bu işler, kodun derlenmesi, test edilmesi ve dağıtılması gibi adımları içerebilir.
Workflow'lar, projenizin kök dizininde bulunan .github/workflows
klasöründe YAML dosyaları olarak tanımlanır. Bu dosyalarda, workflow'un ne zaman tetikleneceği, hangi işlerin yapılacağı ve bu işlerin hangi ortamlarda çalışacağı gibi bilgiler yer alır.
Her bir workflow, bir veya daha fazla işten (job) oluşur. Bu işler, belirli bir sırayla veya paralel olarak çalıştırılabilir ve her biri, bir dizi adımdan (step) oluşur. Adımlar, komutların çalıştırılması, betiklerin yürütülmesi veya önceden tanımlanmış eylemlerin kullanılması gibi işlemleri içerir. Örneğin, kodunuzu main
dalına her push ettiğinizde, testlerin otomatik olarak çalıştırılması ve uygulamanızın derlenmesi için bir workflow oluşturabilirsiniz.
GitHub Workflow'ları kullanarak, tekrarlayan görevleri otomatikleştirebilir, tutarlı süreçler uygulayabilir ve geliştirme hattınızın verimliliğini artırabilirsiniz.
Workflow Triggers Türleri,
Depo İçindeki Olaylar:
Push, pull request gibi GitHub deposunda gerçekleşen işlemler tetikleme yapar.
Örnek: Kod gönderildiğinde (push), testler otomatik olarak çalıştırılır.
Depo Dışındaki Olaylar:
GitHub dışında gerçekleşen olaylar, repository_dispatch ile tetiklenebilir.
Örnek: Harici bir API çağrısı yapılarak workflow başlatılır.
Zamanlanmış Olaylar (Scheduled Times):
Belirli aralıklarla veya spesifik zamanlarda workflow çalıştırılabilir.
cron formatı kullanılarak zamanlama yapılır.
Örnek: Her gün saat 12:00'de bir işlem başlatma.
Manuel Tetikleme (Manual):
GitHub arayüzünden kullanıcı tarafından elle başlatılabilir.
Özellikle kullanıcı tarafından kontrol edilmesi gereken işlemler için faydalıdır.
GitHub Actions Workflow Bileşenleri
Actions
Yeniden kullanılabilir görevlerdir.
Spesifik işler için hazırlanmış kod parçacıklarıdır.
Örnek: Kod klonlama, container oluşturma.
Workflows
Depoda tanımlanmış otomatik süreçlerdir.
Birden fazla job içerir.
Tetikleyicilerle (event) veya zamanlanmış olarak çalışır.
Jobs
Aynı ortamda çalışan bir grup adımdır.
Varsayılan olarak paralel çalışır.
Birbirine bağımlı olarak çalışacak şekilde yapılandırılabilir.
Steps
Bir job içindeki bireysel görevlerdir.
Komutları veya action’ları çalıştırır.
Örnek:
echo "Hello, world!"
komutunun çalıştırılması.
Runs
Workflow’un her çalıştırılmasını temsil eder.
Tetikleyici olaylardan sonra başlatılır.
Tam yürütüm sırasında oluşan işlemleri kaydeder.
Runners
Job’ların çalıştırıldığı sunuculardır.
Türler:
GitHub-hosted runners: GitHub tarafından sağlanır.
Self-hosted runners: Kullanıcının kendi ortamında barındırılır.
Marketplace
Yeniden kullanılabilir action’ların bulunduğu platformdur.
Topluluk tarafından geliştirilmiş hazır araçları içerir.
Örnek: Docker image oluşturmak için bir action indirilebilir.
Schedule Event Nedir?
Schedule Event, belirli bir zaman veya gün aralığında bir workflow’un otomatik olarak tetiklenmesini sağlar.
Cron ifadeleri kullanılarak zamanlama yapılır.
Trigger:
Bu workflow, her hafta:
Pazartesi ve Çarşamba 05:30'da.
Salı ve Perşembe 05:30'da tetiklenir.
Adımlar:
İlk adım (
Not on Monday or Wednesday
):Pazartesi ve Çarşamba günlerinde bu adımı atlar.
İkinci adım (
Every time
):Her trigger sırasında çalışır.
Örnek bir senaryoda:
Haftanın belirli günlerinde veritabanı yedekleme.
Her gece saat 00:00’da kod analizi çalıştırma.
Last updated