Компьютеры · Инструкция
GitHub Actions cache miss: кэш не восстанавливается
Сравните полный `key` в логах успешного и проблемного run. Проверьте, что `path` существует до save и совпадает по смысл
Короткий ответ
Сравните полный `key`, `path`, cache version и ветку между run; если exact key не найден, проверьте `restore-keys` и `hashFiles`, чтобы ключ был предсказуемым и действительно совпадал.
Проверка по порядку
- Сравните полный `key` в логах успешного и проблемного run.
- Проверьте, что `path` существует до save и совпадает по смыслу на restore.
- Проверьте `hashFiles(..)`: изменение lockfile или пустой результат меняет key.
Исправление
- Если нужен fallback, задайте осмысленные `restore-keys` от специфичного префикса к общему.
- Учтите область кэша по веткам: feature-branch cache не обязан быть доступен каждой другой ветке.
- Запустите два последовательных 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.