cache
- Git kursu
- İleri seviye
- Ders 42/56
- 4 dk
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
cat << 'EOF' > .github/workflows/ci.yml
steps:
- uses: actions/checkout@v4
# onbellek adimini buraya ekle
EOF
cat .github/workflows/ci.ymlÖrnek çözüm
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.ymlBeklenen çı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
- uses: actions/____@v4
- 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 |