n1ro°
RU

Компьютеры · Инструкция

GitHub Actions cache miss: кэш не восстанавливается

Сравните полный `key` в логах успешного и проблемного run. Проверьте, что `path` существует до save и совпадает по смысл

Редакция N1RO · Проверено

Короткий ответ

Сравните полный `key`, `path`, cache version и ветку между run; если exact key не найден, проверьте `restore-keys` и `hashFiles`, чтобы ключ был предсказуемым и действительно совпадал.

Проверка по порядку

  • Сравните полный `key` в логах успешного и проблемного run.
  • Проверьте, что `path` существует до save и совпадает по смыслу на restore.
  • Проверьте `hashFiles(..)`: изменение lockfile или пустой результат меняет key.

Исправление

  1. Если нужен fallback, задайте осмысленные `restore-keys` от специфичного префикса к общему.
  2. Учтите область кэша по веткам: feature-branch cache не обязан быть доступен каждой другой ветке.
  3. Запустите два последовательных run: первый сохраняет кэш, второй при том же key должен показать hit.

Как понять, что исправлено

  • Второй run с теми же входами показывает cache hit, а изменение lockfile предсказуемо создаёт новый key/cache.

Важно

Не делайте cache key слишком общим: ложный cache hit может подмешать несовместимые зависимости. Ключ должен меняться при значимом lockfile/input.

Что учитывать

Не делайте cache key слишком общим: ложный cache hit может подмешать несовместимые зависимости. Ключ должен меняться при значимом lockfile/input.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Caching dependencies to speed up workflows). Пример и формулировки — редакция N1RO на 2026-09-17.