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 кэша.