CodeBlanks Logo Icon CodeBlanks

cache

Bağımlılık cache'leme ile hızlanma öğrenirsin.

Bağımlılıkları önbelleğe alma (cache)

Sürekli entegrasyon (CI) akışlarında her çalıştırmada paketleri internetten indirmek süreci oldukça yavaşlatır. actions/cache eylemi, indirilen paket klasörlerini GitHub sunucularında saklayarak sonraki çalıştırmalarda doğrudan kullanır. Bu sayede iş akışları dakikalar yerine saniyeler içinde tamamlanır.

- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

Önbellek isabet ettiğinde paketler tekrar indirilmeden doğrudan diskten yüklenir.

Cache anahtarı ve restore-keys

Önbelleğin güncel kalması için key parametresine genellikle kilit dosyasının özeti (hashFiles) eklenir. Bağımlılık dosyasında tek bir paket değiştiğinde hash değişir ve yeni önbellek oluşturulur. Tam eşleşme bulunamazsa restore-keys ile en yakın eski önbellek getirilerek eksik paketler tamamlanır.

with:
  path: ~/.npm
  key: node-cache-${{ hashFiles('package-lock.json') }}
  restore-keys: |
    node-cache-

Bu yapı sayesinde sıfırdan indirme maliyeti en aza indirilir.

Uygulama Cache adımını iş akışına ekle

İş akışına actions/cache@v4 adımını ekle; path: ~/.npm ve key: npm-cache parametrelerini tanımla.

Başlangıç kodu

terminal
cat << 'EOF' > .github/workflows/ci.yml
steps:
  - uses: actions/checkout@v4
  # onbellek adimini buraya ekle
EOF

cat .github/workflows/ci.yml

Örnek çözüm

terminal
cat << 'EOF' > .github/workflows/ci.yml
steps:
  - uses: actions/checkout@v4
  - uses: actions/cache@v4
    with:
      path: ~/.npm
      key: npm-cache
EOF

cat .github/workflows/ci.yml

Beklenen çıktı

steps:
  - uses: actions/checkout@v4
  - uses: actions/cache@v4
    with:
      path: ~/.npm
      key: npm-cache

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 CI iş akışlarında actions/cache eyleminin kullanılmasının temel avantajı nedir?

  • Gizli anahtarları otomatik olarak üçüncü partilerle paylaşmak
  • Bağımlılık indirme süresini ortadan kaldırıp iş akışını hızlandırmak Doğru cevap
  • Başarısız testleri otomatik olarak başarılı saymak
  • Depo boyutunu sunucuda kalıcı olarak küçültmek

Açıklama: Cache mekanizması paketleri saklayıp tekrar indirilmelerini önleyerek iş akışı çalıştırma sürelerini ciddi oranda düşürür.

2 Cache eylemini çağır

Soru
      - uses: actions/____@v4
Cevap
      - uses: actions/cache@v4

Açıklama: Bağımlılıkları önbelleğe almak için resmi actions/cache@v4 eylemi kullanılır.

3 Önbellek parametreleri

Kavram Anlamı
actions/cache Bağımlılıkları saklayıp hızlandırır
key Önbelleğin benzersiz kimliğidir
restore-keys Tam eşleşme yoksa yedek önbellek
hashFiles Kilit dosyasının özetini üretir

İleri seviye bölümündeki tüm dersler