Выбор ответа Middle CI/CD обновлено
Ключ кеша зависимостей
Вопрос
Каким лучше сделать ключ кеша npm в CI?
- uses: actions/cache@v4
with:
path: ~/.npm
key: ???
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}. Ключ должен меняться ровно тогда, когда меняются зависимости.
Варианты ответа
npm-cache-${{ runner.os }}-v1${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}правильный ответ${{ runner.os }}-${{ github.sha }}npm-${{ github.run_id }}-${{ github.ref }}-${{ runner.os }}
Разбор
Ключ должен меняться ровно тогда, когда меняются зависимости. Хеш lock-файла плюс ОС раннера даёт это: зависимости те же, кеш переиспользуется; добавили пакет, создаётся новый.
- Постоянный ключ никогда не обновится: кеш, сохранённый однажды, перезаписан не будет.
github.shaиrun_idуникальны для каждого коммита или запуска, кеш не будет находиться почти никогда.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.