Caching Package and Dependency Files
GitHub Actions Cache, CI/CD süreçlerinde sıkça indirilen bağımlılıkları veya oluşturulan (build) dosyaları tekrar kullanarak iş akışlarını hızlandırmak için kullanılır.
1) Caching Package & Dependency Files
Amacı: Her yeni workflow çalışmasında (run) tekrar bağımlılık indirmek (npm install, pip install, bundle install vb.) yerine, daha önce indirilmiş paketleri bir cache’ten almak ve işleri hızlandırmak.
Nasıl Yapılır?
Pek çok resmi “setup” action (örn.
setup-node
,setup-python
,setup-ruby
,setup-java
) “cache” özelliği sunar. Örneğin:Bu sayede gem’ler (Ruby paketleri) otomatik cache’lenir. Benzer şekilde
setup-node
action’ındacache: npm
yazabilirsin.Ya da el ile
actions/cache@v3
action’ı kullanıppath
vekey
belirleyerek kendi paket klasörünü cache’lersin.
Kullanım Örneği,
Nasıl Çalışıyor?
Cache Build Output (Build Job)
“actions/cache@v4”,
dist
klasörünürunner.os-dist
adlı bir cache anahtarıyla arar/oluşturur.Varsa → “
cache-hit: true
”.Yoksa → “
cache-hit: false
”.
Dist is already cached (skip build)
“if: steps.build-cache.outputs.cache-hit == 'true'” → Cache bulunduysa bu step çalışır.
Sadece “dist folder is found in cache…” mesajını basar,
npm install
vs. yapmaz.
Build (only if cache not found)
“if: steps.build-cache.outputs.cache-hit != 'true'” → Cache yoksa bu step devreye girer.
npm install
+npm run build
ile “dist” klasörünü oluşturur.Job sonunda, yeni “dist” klasörü cache sunucusuna kaydedilir.
Restore Build Output (Deploy Job)
“deploy” job, aynı
path: dist
vekey: runner.os-dist
kullanarak dist klasörünü tekrar cache sunucusundan yükler.Dolayısıyla “dist” klasörü orada hazır olduğu için “Deploy” adımında kullanabilir.
Özet: Bu ek step’le beraber, Build job içinde de açıkça “cache varsa atla, yoksa build” mantığını görebiliyorsun.
Last updated
Was this helpful?