0Pricing
DevOps Bootcamp · Lezione

Memorizzare le dipendenze nella cache per build più rapide

Velocizzi le pipeline CI memorizzando nella cache dipendenze e artefatti di build con l'azione actions/cache, le chiavi e le restore-keys.

Memorizzare le dipendenze nella cache per build più rapide è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Il costo della reinstallazione

La maggior parte del tempo della CI viene impiegata per scaricare e installare le stesse dipendenze a ogni esecuzione. La memorizzazione nella cache le conserva tra un'esecuzione e l'altra, così le build successive riutilizzano il lavoro già svolto, riducendo spesso drasticamente la durata della pipeline.

L'action cache

GitHub fornisce actions/cache. È necessario indicare un percorso da memorizzare nella cache e una chiave che identifichi la voce della cache. In caso di hit, il percorso viene ripristinato; altrimenti viene salvato al termine del job.

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

Progettazione di una buona chiave

La chiave dovrebbe cambiare solo quando deve cambiare anche il contenuto memorizzato nella cache. L'ideale è calcolare l'hash del lockfile: un nuovo lockfile indica nuove dipendenze, quindi viene creata una nuova voce della cache.

key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

Chiavi di ripristino

restore-keys fornisce prefissi di fallback. Se non viene trovata una corrispondenza esatta, l'action ripristina la cache più recente la cui chiave inizia con un prefisso, offrendo un avvio parzialmente già preparato.

restore-keys: |
  ${{ runner.os }}-npm-

Cache hit e cache miss

In caso di corrispondenza esatta della chiave si verifica un cache hit e il percorso viene ripristinato. In caso di miss, il job viene eseguito normalmente e la cache viene salvata al termine utilizzando la chiave primaria, pronta per la volta successiva.

Caching integrato nelle action di configurazione

Le action di configurazione dei linguaggi includono già il caching. Per Node, setup-node con cache: npm gestisce la cache delle dipendenze, senza bisogno di uno step di caching separato.

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: npm

Che cosa memorizzare nella cache

Memorizzi nella cache le directory di download del gestore dei pacchetti, non la directory node_modules già installata, quando possibile, perché le cache dei download sono portabili e lo step di installazione verifica comunque l'integrità.

  • Node: ~/.npm
  • Python: cache di pip
  • Java: ~/.m2 o le cache di Gradle

Ambito e limiti della cache

Le cache hanno come ambito un branch, con fallback al branch predefinito, e un limite di dimensione per repository. Le cache inutilizzate vengono eliminate nel tempo; progetti quindi chiavi che possano cambiare senza problemi.

Come evitare cache obsolete

Se la chiave non cambia mai, è possibile fornire dipendenze obsolete. Colleghi sempre la chiave all'hash del lockfile, così gli aggiornamenti invalideranno automaticamente la cache.

Matrice e sistema operativo nelle chiavi

Nelle build a matrice su sistemi operativi o versioni diverse, includa runner.os e la versione nella chiave, così ogni variante avrà la propria cache corretta senza conflitti.

key: ${{ runner.os }}-node20-${{ hashFiles('package-lock.json') }}

Misurazione del vantaggio

Confronti la durata dei job prima e dopo l'introduzione della cache e osservi nei log l'indicatore di cache hit. Un tasso di hit costantemente basso segnala una chiave che cambia troppo spesso.

Verifica rapida

Verifichi la comprensione della memorizzazione nella cache delle dipendenze.

Riepilogo

Ha velocizzato la CI con la memorizzazione nella cache delle dipendenze: l'action actions/cache con una chiave basata sull'hash del lockfile e il fallback restore-keys, il caching integrato nelle action di configurazione, la scelta di cosa memorizzare nella cache, l'inclusione del sistema operativo e della versione nelle chiavi delle build a matrice e la prevenzione delle cache obsolete collegando la chiave al lockfile.

Domande Frequenti

La lezione «Memorizzare le dipendenze nella cache per build più rapide» è gratuita?

Sì — il testo completo di «Memorizzare le dipendenze nella cache per build più rapide» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Memorizzare le dipendenze nella cache per build più rapide»?

Velocizzi le pipeline CI memorizzando nella cache dipendenze e artefatti di build con l'azione actions/cache, le chiavi e le restore-keys. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Memorizzare le dipendenze nella cache per build più rapide»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Trigger ed eventi dei workflow
  2. Eseguire test con GitHub Actions
  3. Linting e controlli della qualità del codice
  4. Memorizzare le dipendenze nella cache per build più rapide
← Torna a DevOps Bootcamp