0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Ders

Yol Filtreleme ve Seçmeli Derlemeler

Monorepo ve çoklu depo kurulumlarında yol filtreleri, değişiklik algılama ve koşullu matrisler kullanarak yalnızca değişiklikten etkilenen iş akışlarını ve işleri tetikleyin.

Yol Filtreleme ve Seçmeli Derlemeler, CoddyKit'te ücretsiz bir CI/CD with GitHub Actions & DevOps Pipelines dersidir. Bu, 4 dersinin 4. 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.

Boşa Harcanan Derleme Sorunu

Bir monorepo'da belgelerde yapılan bir değişiklik, arka ucu, ön ucu ve mobil uygulamayı yeniden derleyip yeniden dağıtmamalıdır.

Seçimli derlemeler, pipeline'ın yalnızca değişiklikten etkilenen bölümlerini çalıştırır; böylece zamandan ve çalıştırıcı dakikalarından tasarruf edilir.

Tetikleyicilerde Yol Filtreleri

En basit yaklaşım, tetikleyicideki paths filtresidir. Bir iş akışı yalnızca kalıpla eşleşen dosyalar değiştiğinde çalışır.

on:
  push:
    paths:
      - 'services/api/**'

Yolları Yok Sayma

paths-ignore ile bunun tersini de yapabilirsiniz: iş akışını listelenen yollar dışındaki her şey için çalıştırabilirsiniz.

Bu, yalnızca belgelerde yapılan değişiklikler için CI çalıştırmayı atlamak açısından kullanışlıdır.

on:
  push:
    paths-ignore:
      - 'docs/**'
      - '**.md'

Tetikleyici Filtrelerinin Sınırları

Tetikleyici düzeyindeki filtreler, iş akışının tamamının çalışıp çalışmayacağına karar verir. Ancak monorepo'da çoğu zaman hangi işlerin çalışacağına karar veren tek bir iş akışı istersiniz.

Bunun için değişiklikleri iş akışının içinde algılar ve sonuca göre dallanırsınız.

Değişiklik Algılama Action'ı

dorny/paths-filter action'ı farkı inceler ve adlandırılmış her yol grubu için doğru/yanlış değerleri üretir.

Daha sonraki işler, çalışıp çalışmayacaklarına karar vermek için bu çıktıları okur.

  - uses: dorny/paths-filter@v3
    id: changes
    with:
      filters: |
        api:
          - 'services/api/**'
        web:
          - 'services/web/**'

Algılanan Değişikliklere Göre İşleri Koşullandırma

Bir algılama işi çıktılar sunar; sonraki işler koşullu olarak çalışmak için needs bağlamıyla birlikte if kullanır.

  build-api:
    needs: detect
    if: needs.detect.outputs.api == 'true'
    runs-on: ubuntu-latest
    steps:
      - run: ./build-api.sh

Çıktıları Bağlama

Algılama işi, filtre sonuçlarını diğer işlerin okuyabilmesi için ileten outputs değerlerini bildirmelidir.

  detect:
    runs-on: ubuntu-latest
    outputs:
      api: ${{ steps.changes.outputs.api }}
      web: ${{ steps.changes.outputs.web }}

Dinamik Matrisler

Çok sayıda hizmet için, değişen yollardan dinamik olarak bir matris oluşturabilirsiniz; böylece yalnızca değişen hizmetler matrise girer.

Bir işte JSON listesi oluşturun ve bunu sonraki işin matrisine aktarın.

    strategy:
      matrix:
        service: ${{ fromJSON(needs.detect.outputs.list) }}

Algılama için Git Farkı

Değişiklikleri ham git kullanarak da algılayabilirsiniz. Değişen dizinleri listelemek için mevcut işlemedeki değişiklikleri temel işlemeyle karşılaştırın.

git diff --name-only origin/main...HEAD | cut -d/ -f1-2 | sort -u

Gerekli Denetimler ve Atlamalar

Dikkat: hiçbir şey değişmediği için gerekli bir durum denetimi atlanırsa dal koruması, bu denetimin tamamlanmasını bekleyerek birleştirmeyi engelleyebilir.

Çözüm, her zaman başarılı olan ve gerekli tek denetim olarak belirlenen bir son geçiş işi eklemektir; bu iş koşullu işleri özetler.

  gate:
    needs: [build-api, build-web]
    if: always()
    runs-on: ubuntu-latest
    steps:
      - run: echo 'all required jobs resolved'

Paket Başına Önbellekleme

Seçimli derlemeler, paket başına önbelleklerle iyi çalışır. Önbellek anahtarını her hizmetin kilit dosyasına göre belirleyin; böylece ilgisiz değişiklikler önbelleği geçersiz kılmaz.

Birlikte kullanıldıklarında, depo büyüse bile monorepo pipeline'larının hızlı kalmasını sağlarlar.

Kısa Kontrol

Seçimli derlemeler anlayışınızı test edin.

Özet

Yalnızca değişenleri derlemeyi öğrendiniz.

  • paths ve paths-ignore, tüm iş akışlarını koşullandırır
  • Değişiklik algılama action'ları yol başına doğru/yanlış çıktıları üretir
  • İşler koşullu çalışmak için if + needs kullanır; matrisler de dinamik olarak oluşturulabilir
  • Gerekli denetimlerle uyumluluk için bir always() geçiş işi ekleyin

Seçimli derlemeler, monorepo CI/CD süreçlerini hızlı ve ekonomik tutar.

Sıkça Sorulan Sorular

“Yol Filtreleme ve Seçmeli Derlemeler” dersi ücretsiz mi?

Evet — “Yol Filtreleme ve Seçmeli Derlemeler” 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.

“Yol Filtreleme ve Seçmeli Derlemeler” dersinde ne öğreneceğim?

Monorepo ve çoklu depo kurulumlarında yol filtreleri, değişiklik algılama ve koşullu matrisler kullanarak yalnızca değişiklikten etkilenen iş akışlarını ve işleri tetikleyin. 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 4. dersidir.

“Yol Filtreleme ve Seçmeli Derlemeler” 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

  1. Monorepo'lar için CI/CD
  2. Depolar Arası İş Akışları
  3. Merkezi İş Akışı Yönetimi
  4. Yol Filtreleme ve Seçmeli Derlemeler
← CI/CD with GitHub Actions & DevOps Pipelines Sayfasına Dön