Я пытаюсь создать конвейер проекта nodeJS и ввести слой кеширования, чтобы модули node_modules не всегда создавались. Я использую конвейеры GITLAB и выполняю следующий этап установки зависимостей: -
Установить зависимости:
stage: install_dependencies
script:
- yarn install
cache:
key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR
paths:
- node_modules/
- .yarn
only:
changes:
- package-lock.json
- yarn.lock
refs:
- merge_requests
- master
- ^(feature|hotfix)\/(.*)+$
tags:
- docker
Проблема в том, что конвейер не проверяет наличие части «изменений» и всегда запускает этап.
Согласно документации Gitlab : -
With only, individual keys are logically joined by an AND:
(any of refs) AND (any of variables) AND (any of changes) AND (if Kubernetes is active)