Yeniden Kullanılabilir İş Akışları ve Eylemler
İşlem hatlarınızı modülerleştirmek ve depolar arasında tutarlılığı desteklemek için yeniden kullanılabilir iş akışları ve özel eylemler oluşturup bunlardan yararlanın.
Yeniden Kullanılabilir İş Akışları ve Eylemler, CoddyKit'te ücretsiz bir CI/CD with GitHub Actions & DevOps Pipelines dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, CI/CD with GitHub Actions & DevOps Pipelines öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CI/CD with GitHub Actions & DevOps Pipelines kursu toplamda 4 dersten oluşur.
İş Akışlarının Yeniden Kullanılabilirliğine Giriş
Modern yazılım geliştirmede verimlilik ve tutarlılık çok önemlidir. Projeleriniz büyüdükçe otomasyon ihtiyaçlarınız da büyür.
GitHub Eylemleri'ndeki yeniden kullanılabilir iş akışları ve özel eylemler, aynı işlemleri tekrarlamaktan kaçınmanıza yardımcı olarak CI/CD işlem hatlarınızı daha bakımı kolay ve sağlam hâle getirir.
İş Akışları Neden Yeniden Kullanılır?
Aynı derleme, sınama veya dağıtım adımlarına ihtiyaç duyan birden çok uygulamanız olduğunu düşünün. İş akışı kodunu kopyalayıp yapıştırmak şu sorunlara yol açar:
- Kod Tekrarı: Bakımı yapılacak daha fazla kod.
- Tutarsızlık: İş akışları arasındaki güncellemeleri gözden kaçırmak kolaydır.
- Bakım Zorlukları: Değişiklikler, birçok dosyanın güncellenmesini gerektirir.
Yeniden kullanılabilirlik bu sorunları çözer!
Yeniden Kullanılabilir İş Akışı Tanımlama
Yeniden kullanılabilir iş akışı, diğer iş akışları tarafından çağrılabilen eksiksiz bir iş akışıdır. Deponuzda saklanır ve bir şablon görevi görür.
Bir iş akışını yeniden kullanılabilir hâle getirmek için workflow_call olayını kullanırsınız. Bu, GitHub Eylemleri'ne bu iş akışının push veya pull_request gibi olağan olaylarla tetiklenmek yerine çağrılmak üzere tasarlandığını bildirir.
Yeniden Kullanılabilir İş Akışı Örneği
Burada bir derlemeyi taklit eden basit bir yeniden kullanılabilir iş akışı bulunmaktadır. Bunu .github/workflows/reusable-build.yml dosyasına kaydedin.
Çağıran iş akışlarının kullanabileceği build_id adlı bir output tanımlar.
name: Reusable Build Component
on:
workflow_call:
outputs:
build_id:
description: "The ID of the build operation"
value: ${{ jobs.build.outputs.build_id }}
jobs:
build:
runs-on: ubuntu-latest
outputs:
build_id: ${{ steps.generate_id.outputs.id }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate build ID
id: generate_id
run: echo "id=$(date +%s)" >> "$GITHUB_OUTPUT"
- name: Simulate build
run: echo "Building project with ID ${{ steps.generate_id.outputs.id }}..."
Yeniden Kullanılabilir İş Akışını Çağırma
Yeniden kullanılabilir bir iş akışını kullanmak için başka bir iş akışı ("çağıran"), GitHub Eylemi kullanmaya benzer şekilde uses anahtar sözcüğünü kullanır.
Yeniden kullanılabilir iş akışı dosyasının deponuzdaki yolunu, hatta başka bir depodaki veya belirli bir sürümdeki yolunu belirtirsiniz.
Çağıran İş Akışı Örneği
.github/workflows/main-app-ci.yml olarak kaydedilen bu iş akışı, reusable-build.yml iş akışımızı çağırır.
Çağrılan iş akışının build_id çıktısına jobs.call-build.outputs.build_id kullanarak nasıl eriştiğine dikkat edin.
name: Main App CI
on: [push]
jobs:
call-build:
uses: ./.github/workflows/reusable-build.yml
outputs:
build_id: ${{ jobs.call-build.outputs.build_id }}
deploy:
needs: call-build
runs-on: ubuntu-latest
steps:
- name: Deploy app
run: echo "Deploying app built with ID ${{ needs.call-build.outputs.build_id }}"
Yeniden Kullanılabilir İş Akışlarına Girdi Aktarma
Yeniden kullanılabilir iş akışları yalnızca statik şablonlar değildir; girdileri kabul ederek son derece esnek hale gelebilirler.
Beklenen girdileri, yeniden kullanılabilir iş akışının on: workflow_call: inputs: bölümünde tanımlayarak türlerini, gerekli olup olmadıklarını ve açıklamalarını belirtirsiniz. Çağıran iş akışı bu girdileri with: anahtar sözcüğünü kullanarak iletir.
Girdiler İçeren Yeniden Kullanılabilir İş Akışı
Aşağıda target_env girdisini kabul eden güncellenmiş bir reusable-build.yml yer alıyor. Bu sayede aynı derleme mantığı farklı ortamlar için özelleştirilebilir.
name: Reusable Build Component with Input
on:
workflow_call:
inputs:
target_env:
required: true
type: string
description: "The target environment for the build"
outputs:
build_id:
description: "The ID of the build operation"
value: ${{ jobs.build.outputs.build_id }}
jobs:
build:
runs-on: ubuntu-latest
outputs:
build_id: ${{ steps.generate_id.outputs.id }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate build ID
id: generate_id
run: echo "id=$(date +%s)" >> "$GITHUB_OUTPUT"
- name: Simulate build for ${{ inputs.target_env }}
run: echo "Building project for ${{ inputs.target_env }} with ID ${{ steps.generate_id.outputs.id }}..."
Girdilerle Çağırma Örneği
Artık ana CI iş akışımız, yeniden kullanılabilir derleme bileşenini biri 'staging', diğeri 'production' için olmak üzere iki kez çağırabilir ve farklı target_env değerleri iletebilir.
name: Main App CI with Input
on: [push]
jobs:
call-build-staging:
uses: ./.github/workflows/reusable-build-with-input.yml
with:
target_env: 'staging'
outputs:
build_id: ${{ jobs.call-build-staging.outputs.build_id }}
call-build-prod:
uses: ./.github/workflows/reusable-build-with-input.yml
with:
target_env: 'production'
outputs:
build_id: ${{ jobs.call-build-prod.outputs.build_id }}
Yeniden Kullanılabilir İş Akışları ve Özel Eylemler
Her ikisi de yeniden kullanılabilirliği teşvik etse de farklı amaçlara hizmet eder:
- Yeniden Kullanılabilir İş Akışları: Bir dizi işi düzenler. Eksiksiz bir iş akışı yapısı tanımlar (ör. derleme, sınama, dağıtım).
- Özel Eylemler: Bir iş içinde belirli, tek bir görevi gerçekleştirir (ör. Node.js kurulumu, paket yayımlama). Bunlar bir işin adımlarının *içindeki* yapı taşlarıdır.
İş akışlarını tarifler, eylemleri ise tek tek malzemeler veya adımlar olarak düşünebilirsiniz.
Hızlı Kontrol
GitHub Eylemleri'nde yeniden kullanılabilir iş akışlarını kullanmanın temel faydaları aşağıdakilerden hangileridir?
Özet: Yeniden Kullanılabilir İş Akışları ve Eylemler
Yeniden kullanılabilir iş akışlarının CI/CD işlem hatlarınızı modüllere ayırmanıza nasıl yardımcı olduğunu inceledik.
workflow_callkullanılarak tanımlanırlar.inputskabul edebilir veoutputssağlayabilirler.- Çağıran iş akışları
usesanahtar sözcüğünü kullanır. - İşler içindeki tek görevli yapı taşları olan özel eylemlerden farklıdırlar.
Yeniden kullanılabilirliği benimsemek, projeleriniz genelinde daha verimli, tutarlı ve bakımı daha kolay bir otomasyon sağlar.
Sıkça Sorulan Sorular
“Yeniden Kullanılabilir İş Akışları ve Eylemler” dersi ücretsiz mi?
Evet — “Yeniden Kullanılabilir İş Akışları ve Eylemler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve CI/CD with GitHub Actions & DevOps Pipelines kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CI/CD with GitHub Actions & DevOps Pipelines kursu toplamda 4 dersten oluşur.
“Yeniden Kullanılabilir İş Akışları ve Eylemler” dersinde ne öğreneceğim?
İşlem hatlarınızı modülerleştirmek ve depolar arasında tutarlılığı desteklemek için yeniden kullanılabilir iş akışları ve özel eylemler oluşturup bunlardan yararlanın. CI/CD with GitHub Actions & DevOps Pipelines ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
CI/CD with GitHub Actions & DevOps Pipelines öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te CI/CD with GitHub Actions & DevOps Pipelines, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Yeniden Kullanılabilir İş Akışları ve Eylemler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu CI/CD with GitHub Actions & DevOps Pipelines dersinde kod yazıp çalıştırabilir miyim?
Evet. Her CI/CD with GitHub Actions & DevOps Pipelines dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Birden Çok Ortam için Matris Derlemeleri
- Hız için Bağımlılıkları Önbelleğe Alma
- Yeniden Kullanılabilir İş Akışları ve Eylemler
- Koşullu Yürütme ve İş Bağımlılıkları