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

Hız için Bağımlılıkları Önbelleğe Alma

Oluşturulan bağımlılıkları ve derleme çıktılarını yeniden kullanarak iş akışınızın yürütme hızını önemli ölçüde artırmak için önbelleğe almayı uygulayın.

Hız için Bağımlılıkları Önbelleğe Alma, CoddyKit'te ücretsiz bir CI/CD with GitHub Actions & DevOps Pipelines dersidir. Bu, 4 dersinin 2. 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.

Önbelleğe Almayla İş Akışlarını Hızlandırma

İş akışınızın her seferinde aynı bağımlılıkları yeniden indirdiğini hiç fark ettiniz mi? Bu, işleri yavaşlatır!

GitHub Eylemleri'ndeki önbelleğe alma, önceki çalıştırmalardaki dosyaları saklamanıza ve yeniden kullanmanıza olanak tanır. Bu, sonraki iş akışı yürütmelerini büyük ölçüde hızlandırır.

Önbellek Eylemiyle Tanışma

GitHub, actions/cache@v3 adlı özel bir eylem sağlar. Bu eylem, iş akışlarınızı hızlandırmak için dosyaları kaydetmek ve geri yüklemek üzere tasarlanmıştır.

Akıllıca çalışır: geri yüklemeyi denemeden önce önbelleğin zaten var olup olmadığını kontrol eder ve önbellek yoksa onu kaydeder.

Önbellek Anahtarı ve Yolu

actions/cache için iki önemli parametre key ve path'tir:

  • key: Önbelleğinizi tanımlayan benzersiz dizedir. Bu anahtara sahip bir önbellek bulunursa geri yüklenir.
  • path: Önbelleğe almak istediğiniz dosya yolları veya dizinlerdir. Bu, eyleme neyi kaydetmesi veya geri yüklemesi gerektiğini bildirir.

Anahtar, bağımlılıklar değiştiğinde önbelleğin geçersiz kılınmasını sağlamak için genellikle bağımlılık dosyalarının karma değerini içerir.

Node.js Bağımlılıklarını Önbelleğe Alma

Bir Node.js projesi için node_modules dizinini önbelleğe alalım. package-lock.json temel alınarak dinamik bir anahtar oluşturmak için hashFiles kullanacağız.

Bu basit iş akışı kod parçasını çalıştırmayı deneyin:

name: Node.js CI with Cache

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Cache Node.js modules
      uses: actions/cache@v3
      with:
        path: node_modules
        key: npm-${{ hashFiles('package-lock.json') }}
        restore-keys: |
          npm-
    - name: Install dependencies
      run: npm ci
    - name: Run tests
      run: npm test

Geri Yükleme Anahtarlarıyla Geri Dönüş

Tam key değeriniz bir önbellekle eşleşmezse ne olur? İşte restore-keys burada işe yarar!

restore-keys, aranacak geri dönüş anahtarlarının bir listesini sağlar. Birincil anahtar (örneğin npm-${{ hashFiles(...) }}) eşleşmezse GitHub Eylemleri, restore-keys değerlerini sırayla kullanarak bir önbellek bulmaya çalışır.

Örneğimizde npm-, "npm-" ile başlayan herhangi bir önbelleği bulmaya çalışır. Bu, yalnızca küçük bağımlılık sürümleri değiştiğinde kullanışlıdır.

Python Bağımlılıklarını Önbelleğe Alma

Önbelleğe alma yalnızca Node.js için değildir! Aynı ilkeyi Python gibi diğer dillere de uygulayabilirsiniz. Burada Python'un sanal ortamını ve pip önbelleğini önbelleğe alıyoruz.

Buradaki anahtar hashFiles('requirements.txt') kullanır ve yol, sanal ortamı ve pip'in önbellek dizinini gösterir.

name: Python CI with Cache

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.x'
    - name: Cache Python dependencies
      uses: actions/cache@v3
      with:
        path: |
          ~/.cache/pip
          .venv
        key: pip-${{ hashFiles('requirements.txt') }}
        restore-keys: |
          pip-
    - name: Install dependencies
      run: |
        python -m venv .venv
        .venv/bin/pip install -r requirements.txt
    - name: Run tests
      run: .venv/bin/python -m unittest discover

Önbellek Ne Zaman Geçersiz Kılınmalı

Bir önbellek yalnızca yeterince güncelse kullanışlıdır. Bağımlılıklarınız değişirse önbelleğiniz de değişmelidir!

Birincil key değeriniz (örneğin npm-${{ hashFiles('package-lock.json') }}) değiştiğinde önbellek otomatik olarak geçersiz kılınır. package-lock.json güncellenirse karma değeri değişir ve yeni bir önbellek oluşturulur.

Anahtarı manuel olarak değiştirerek de önbelleğin yeniden oluşturulmasını zorlayabilirsiniz; örneğin npm-v2-${{ hashFiles(...) }} gibi bir sürüm son eki ekleyebilirsiniz.

Önbellek Kapsamı ve Sınırları

Önbelleğe almanın arka planda nasıl çalıştığını bilmek faydalıdır:

  • Kapsam: Önbellekler depo ve dal başına ayrı kapsamlandırılır. main dalındaki bir önbellek, lookup-path değerini açıkça yapılandırmadığınız sürece bir özellik dalında kullanılmaz.
  • Boyut Sınırı: Her önbellek en fazla 10 GB olabilir.
  • Saklama Süresi: Önbellekler son erişimden sonra 7 gün boyunca saklanır. Eski ve kullanılmayan önbellekler otomatik olarak kaldırılır.

Akıllı Önbelleğe Alma Uygulamaları

Önbelleğe almadan en iyi şekilde yararlanmak için:

  • hashFiles kullanın: Önbellek anahtarınızı her zaman bağımlılık bildirim dosyalarına bağlayın (örneğin package-lock.json ve requirements.txt).
  • path değerini belirli tutun: Yalnızca gerekli olanları önbelleğe alın (örneğin node_modules ve ~/.cache/pip).
  • restore-keys kullanın: Önbellek isabet oranlarını artırmak için geri dönüş seçenekleri sağlayın.
  • Değişken Verileri Önbelleğe Almaktan Kaçının: Sık değişen veya çok büyük ve her çalıştırmada benzersiz olan dosyaları önbelleğe almayın (örneğin dağıtım için tasarlanmış derleme çıktıları).

Önbellek Anahtarı Sorusu

Maven kullanan bir Java projeniz var. Bağımlılıkları pom.xml içinde tanımlanmış ve Maven, indirilen Java arşivlerini genellikle ~/.m2/repository içinde saklar.

pom.xml değiştiğinde Maven bağımlılıklarının önbelleğe alınmasını ve doğru şekilde geçersiz kılınmasını en iyi şekilde sağlayan önbellek yapılandırması hangisidir?

Özet: Hız İçin Önbellek!

Harika iş çıkardınız! GitHub Eylemleri'nde CI/CD iş akışlarınızı önemli ölçüde hızlandırmak için önbelleğe almayı nasıl uygulayacağınızı öğrendiniz.

  • actions/cache eylemi aracınızdır.
  • Neyi ve nasıl önbelleğe alacağınızı tanımlamak için key ve path kullanın.
  • hashFiles, akıllı geçersiz kılma için dinamik anahtarlar oluşturur.
  • restore-keys değerleri değerli geri dönüş seçenekleri sağlar.

Bağımlılıkları akıllıca önbelleğe alarak derleme süresinden ve işlem kaynaklarından tasarruf eder, işlem hatlarınızı daha verimli hâle getirirsiniz!

Sıkça Sorulan Sorular

“Hız için Bağımlılıkları Önbelleğe Alma” dersi ücretsiz mi?

Evet — “Hız için Bağımlılıkları Önbelleğe Alma” 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.

“Hız için Bağımlılıkları Önbelleğe Alma” dersinde ne öğreneceğim?

Oluşturulan bağımlılıkları ve derleme çıktılarını yeniden kullanarak iş akışınızın yürütme hızını önemli ölçüde artırmak için önbelleğe almayı uygulayı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 2. dersidir.

“Hız için Bağımlılıkları Önbelleğe Alma” 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. Birden Çok Ortam için Matris Derlemeleri
  2. Hız için Bağımlılıkları Önbelleğe Alma
  3. Yeniden Kullanılabilir İş Akışları ve Eylemler
  4. Koşullu Yürütme ve İş Bağımlılıkları
← CI/CD with GitHub Actions & DevOps Pipelines Sayfasına Dön