DevOps Bootcamp · 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.

4. ders / 413 adım

Yol Filtreleme ve Seçmeli Derlemeler, CoddyKit'te ücretsiz bir DevOps Bootcamp 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, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp 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.

Başlamak ücretsiz

Yapay zeka eğitmeniyle DevOps Bootcamp öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
142
Dersler
568

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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp 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. DevOps Bootcamp 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.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, 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 DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp 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
← DevOps Bootcamp Sayfasına Dön