Кеширование зависимостей
Кеширование позволяет значительно ускорить сборки, повторно используя результаты предыдущих запусков (например, уже загруженные зависимости) вместо того, чтобы заново загружать их при каждом запуске workflow.
В GitVerse можно использовать механизм кеширования аналогично GitHub Actions — с помощью специального действия actions/cache. Ниже приведен пример использования кеша для Node.js-проекта (npm-пакеты):
name: CI with cache
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Restore npm cache
uses: actions/cache@v3
with:
path: ~/.npm # директория с кешем npm (глобальный кеш пакетов)
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testКак это работает: шаг actions/cache пытается восстановить кеш по ключу ubuntu-latest-npm-<hash> (хеш вычисляется на основе файла package-lock.json). Если подходящий кеш найден, содержимое директории ~/.npm будет восстановлено, и команда npm ci установит зависимости из локального кеша быстрее. Если кеш не найден (например, при первом запуске), зависимости будут скачаны с нуля, а по завершении job — сохранены под новым ключом для будущих запусков.
В ключе кеша удобно включать хеш файла зависимостей (lock-file), чтобы при изменении списка зависимостей автоматически создавался новый кеш.
При последующих запусках workflow с тем же набором зависимостей шаг установки будет выполняться значительно быстрее, так как пакеты будут браться из кеша. Аналогично можно кешировать артефакты сборки, каталоги из библиотеки и другие ресурсоемкие части pipeline.
Обратите внимание, что у кеша также могут быть ограничения по объему и времени хранения — в GitVerse по умолчанию кеш хранится ограниченное время, актуальные лимиты можно уточнить в документации.