GitHub Actions: кеш npm через setup-node

Категория: Backend · Язык: YAML · Обновлено:

Чтобы повторные сборки не загружали npm-зависимости заново, включите кеш в actions/setup-node. Ключ строится по lock-файлу; после его изменения GitHub создаст отдельный кеш для нового набора зависимостей.

Рабочий пример

YAML
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-node@v4
    with:
      node-version: 22
      cache: npm
      cache-dependency-path: frontend/package-lock.json
  - run: npm ci --prefix frontend
  - run: npm test --prefix frontend

cache: npm сохраняет npm download cache, а не node_modules. Зависимости всё равно устанавливаются через npm ci, который использует lock-файл и воспроизводит точные версии.

Частый вопрос

Нужно ли отдельно кешировать node_modules?

Обычно нет: npm cache вместе с npm ci проще и переносимее. Отдельный node_modules cache может переносить платформенно-зависимые бинарные файлы.