Abhängigkeiten für schnellere Builds cachen
Beschleunigen Sie CI-Pipelines, indem Sie Abhängigkeiten und Build-Artefakte mit der actions/cache-Action, Keys und Restore-Keys cachen.
Abhängigkeiten für schnellere Builds cachen ist eine kostenlose CI/CD with GitHub Actions & DevOps Pipelines-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CI/CD with GitHub Actions & DevOps Pipelines-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.
Die Kosten einer Neuinstallation
Die meiste CI-Zeit entfällt darauf, bei jedem Lauf dieselben Abhängigkeiten herunterzuladen und zu installieren. Durch Caching werden sie zwischen Läufen gespeichert, sodass nachfolgende Builds die bereits geleistete Arbeit wiederverwenden können. Dadurch verkürzt sich die Pipeline oft deutlich.
Die Cache-Action
GitHub stellt actions/cache bereit. Sie geben einen zu cachenden Pfad und einen Schlüssel an, der den Cache-Eintrag identifiziert. Bei einem Treffer wird der Pfad wiederhergestellt; andernfalls wird er nach Abschluss des Jobs gespeichert.
- uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}Einen guten Schlüssel entwerfen
Der Schlüssel sollte sich nur ändern, wenn sich auch der gecachte Inhalt ändern soll. Das Hashing des Lockfiles ist ideal: Ein neues Lockfile bedeutet neue Abhängigkeiten, daher wird ein neuer Cache-Eintrag erstellt.
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}Wiederherstellungsschlüssel
restore-keys stellt Präfixe als Fallback bereit. Wenn der exakte Schlüssel nicht gefunden wird, stellt die Action den neuesten Cache wieder her, dessen Schlüssel mit einem Präfix beginnt. So erhalten Sie einen teilweise aufgewärmten Start.
restore-keys: |
${{ runner.os }}-npm-Cache-Treffer vs. Cache-Miss
Bei einer exakten Übereinstimmung des Schlüssels erhalten Sie einen Cache-Treffer und der Pfad wird wiederhergestellt. Bei einem Miss läuft der Job normal weiter und der Cache wird am Ende unter dem primären Schlüssel gespeichert, sodass er beim nächsten Mal bereitsteht.
Integriertes Caching beim Setup
Die Setup-Actions für Programmiersprachen verfügen über integriertes Caching. Für Node übernimmt setup-node mit cache: npm den Dependency-Cache für Sie, sodass kein separater Cache-Schritt erforderlich ist.
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npmWas Sie cachen sollten
Cache-Verzeichnisse des Paketmanagers statt, sofern möglich, der installierten node_modules. Download-Caches sind portabel und der Installationsschritt überprüft weiterhin die Integrität.
- Node:
~/.npm - Python: pip-Cache
- Java:
~/.m2oder Gradle-Caches
Geltungsbereich und Grenzen des Caches
Caches gelten für einen Branch, mit einem Fallback auf den Standardbranch, und unterliegen einem Größenlimit pro Repository. Nicht verwendete Caches werden mit der Zeit entfernt. Entwerfen Sie daher Schlüssel, die sich sauber ändern.
Veraltete Caches vermeiden
Wenn sich Ihr Schlüssel niemals ändert, können Sie veraltete Abhängigkeiten ausliefern. Verknüpfen Sie den Schlüssel immer mit dem Hash des Lockfiles, damit Aktualisierungen den Cache automatisch ungültig machen.
Matrix und Betriebssysteme in Schlüsseln
Fügen Sie bei Matrix-Builds über mehrere Betriebssysteme oder Versionen runner.os und die Version in den Schlüssel ein, damit jede Variante ihren eigenen korrekten Cache erhält und es nicht zu Konflikten kommt.
key: ${{ runner.os }}-node20-${{ hashFiles('package-lock.json') }}Den Erfolg messen
Vergleichen Sie die Jobdauer vor und nach dem Caching und beobachten Sie die Anzeige für Cache-Treffer in den Logs. Eine dauerhaft niedrige Trefferquote weist darauf hin, dass sich ein Schlüssel zu häufig ändert.
Kurzer Test
Testen Sie Ihr Verständnis des Cachings von Abhängigkeiten.
Zusammenfassung
Sie haben Ihre CI mit Dependency-Caching beschleunigt: mit der Action actions/cache, einem Schlüssel auf Basis des Lockfile-Hashs und dem Fallback über restore-keys, mit integriertem Caching in Setup-Actions, der Auswahl geeigneter Cache-Inhalte, der Aufnahme von Betriebssystem und Version in Matrix-Schlüssel sowie der Vermeidung veralteter Caches durch die Verknüpfung des Schlüssels mit dem Lockfile.
Häufig gestellte Fragen
Ist die Lektion „Abhängigkeiten für schnellere Builds cachen“ kostenlos?
Ja — der vollständige Text von „Abhängigkeiten für schnellere Builds cachen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CI/CD with GitHub Actions & DevOps Pipelines-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Abhängigkeiten für schnellere Builds cachen“?
Beschleunigen Sie CI-Pipelines, indem Sie Abhängigkeiten und Build-Artefakte mit der actions/cache-Action, Keys und Restore-Keys cachen. Du übst CI/CD with GitHub Actions & DevOps Pipelines mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um CI/CD with GitHub Actions & DevOps Pipelines zu starten?
Keine Vorkenntnisse erforderlich. CI/CD with GitHub Actions & DevOps Pipelines auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Abhängigkeiten für schnellere Builds cachen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser CI/CD with GitHub Actions & DevOps Pipelines-Lektion Code schreiben und ausführen?
Ja. Jede CI/CD with GitHub Actions & DevOps Pipelines-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Workflow-Trigger und Events
- Tests mit GitHub Actions ausführen
- Linting und Codequalitätsprüfungen
- Abhängigkeiten für schnellere Builds cachen