Reusable Workflow & Reuse Templates for Actions and Workflows
GitHub Actions’ın “reusable workflow” (yeniden kullanılabilir iş akışı) ve “template” (şablon) özellikleri, özellikle kurumsal ortamlarda sık tekrar eden CI/CD (Continuous Integration/Continuous Delivery) iş akışlarını hızlıca oluşturmanızı ve paylaşmanızı sağlayan çok kullanışlı araçlardır.
1. Reusable Workflow Nedir?
Reusable workflow, bir GitHub Actions iş akışını (workflow) başka bir repodaki yahut aynı repodaki farklı bir workflow içinden tekrar kullanılabilir şekilde tanımlama imkânı sunar. Örneğin:
Kurumsal ölçekte her projede kullanılan bir test veya build aşaması varsa bu aşamayı tekrar tekrar kopyalamak yerine tek bir “reusable workflow” oluşturup diğer projelerde onu “çağırmak” yeterli olur.
Böylece bakımı kolaylaşır: Ortak iş akışında güncelleme gerektiğinde merkezî bir noktada düzenleme yapmanız tüm projelerde güncel iş akışının otomatik kullanılmasına izin verir.
Kısa Örnek
Bu reusable-ci.yml dosyası, workflow_call
event’ine yanıt verecek şekilde tanımlanır. Böylece başka bir repo ya da workflow içinden şu şekilde çağırabilirsiniz:
Bu sayede reusable-ci.yml
dosyası tek bir yerde tanımlı olur, ancak farklı projeler veya farklı iş akışları onu kullanabilir.
2. Workflow Templates (Enterprise Özelliği)
“Workflow Templates”, GitHub Enterprise hesabınızda belirli şablonları kurumsal tüm repo sahiplerinin kullanımına açmak için tasarlanmıştır. Yani, reusable workflow tek bir repo içinde kullanılırken, workflow template ise bir “.github” kurumsal deposu içinde tanımlanır ve tüm diğer repolarda bu şablon iş akışını baştan oluşturma fırsatı sunar.
Genel Mantık
Enterprise hesabına ait, genelde “.github” adlı bir repo bulunur. Bu depo içindeki
workflow-templates
klasörüne bir.yml
(iş akışı) ve.json
(metadata) dosyası yüklenir.Hem
workflow.yml
hem deworkflow.json
aynı isimde olmalıdır (örneğin:octo-org-workflow.yml
veocto-org-workflow.json
).Enterprise Üyeleri: Bu şablonu kendi reposuna eklemek istediğinde, GitHub arayüzü üzerinden “Actions” bölümünde yeni bir workflow eklerken bu şablonu görebilir.
Örnek Dosya Yapısı
octo-org-workflow.yml (örnek iş akışı içeriği):
octo-org-workflow.json (metadata dosyası):
name ve description: UI (kullanıcı arayüzü) üzerinde şablonun ismi ve kısa tanımı.
iconName: UI’da bu şablona ait simge ismi (GitHub’ın kendi belirli ikon setinden).
categories: Projenin türüne ilişkin etiketler.
filePatterns: Hangi dosyalar varsa bu şablonun önerileceğini gösteren bir filtre listesi. Örneğin reposunda
package.json
veyaDockerfile
gibi dosyalar bulunan bir kullanıcı, yeni workflow oluştururken bu şablon önerilir.
Not: Bu Workflow Templates özelliği, Enterprise Cloud veya benzer üst seviye planlarda aktifleşir.
3. Adım Adım Kurulum ve Kullanım
Kurumsal .github deposu oluşturma: Eğer hali hazırda yoksa, Enterprise hesabınıza ait bir “.github” adlı publicveya internal repo oluşturulur (genelde public öneriliyor).
workflow-templates klasörü ekleme: Depo içinde
workflow-templates
klasörü oluşturun.Şablon dosyalarını ekleme:
my-workflow.yml
vemy-workflow.json
şeklinde aynı isimde iki dosya ekleyin.Enterprise kullanıcılarına erişim izni verme: Bu depo okunabilir olması gerektiği için enterprise kullanıcılarına read veya write izni verilmiş olduğundan emin olun. (Örneğin, “internal” olarak ayarlamak çoğu zaman işinizi görür.)
Template’i kullanma: Artık enterprise kullanıcıları kendi repo’suna girip Actions bölümünde “New workflow” butonuna tıkladığında, bu şablonu listede görebilir.
Last updated
Was this helpful?