intermediate

Кэш сборки

Кэшируйте детерминированные outputs задач с корректными inputs, env-ключами, lockfile и правилами инвалидации.

Кэш сборки хранит детерминированные outputs задач с ключом из исходников, lockfile, версий toolchain, конфигов и env, влияющих на результат. Local ускоряет ноутбуки; remote — CI.

| Класс input | Примеры | |-------------|---------| | Source | `src/**`, манифесты пакетов | | Toolchain | Версия Node, флаги компилятора | | Env | `NODE_ENV`, feature flags в бандле |

Недетерминированные задачи (timestamp в бандле, сеть без pin) не кэшируют — или нормализуют inputs.

На интервью: cache poisoning, объявление `outputs`, инвалидация при смене env и запрет секретов в ключах и артефактах кэша.

Типовые ошибки: неполный набор inputs и stale builds; кэш integration tests с общей БД; секреты в cached artifacts.

Компромисс — длительность CI против дисциплины корректной инвалидации.

Чеклист:

  • Все inputs, меняющие output.
  • Кэш только детерминированных задач.
  • Тест hit и miss.
  • Секреты вне ключей и outputs кэша.