Как получить файл «cache per package.json» в GitLab CI? - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть веб-приложение Vue, которое создано, протестировано и развернуто с использованием GitLab CI.

GitLab CI имеет функцию " Cache ", в которой можно кэшировать конкретные продукты работы, чтобы можно было избежать будущих запусков работы в том же конвейере и использовать вместо этого кэшированные продукты..

Я бы хотел улучшить производительность своего рабочего процесса, кэшируя каталог node_modules, чтобы его можно было использовать в конвейерах.

Документы GitLab предлагают с использованием ${CI_COMMIT_REF_SLUG}как ключ кеша для достижения этого.Однако это означает «кэширование для каждой ветви», и я хотел бы улучшить это.

Я хотел бы иметь кэш «для package.json».То есть, только если будет изменено содержимое package.json, изменится ключ кеша и будет запущен npm install.

Я думал об использовании хэша содержимого package.jsonфайл в качестве ключа кеша.Возможно ли это с GitLab CI?Если да, то как?

1 Ответ

0 голосов
/ 22 июня 2019

Для этого поведения используйте параметр only:changes со статическим именем кэша.

Пример:

install:
  image: node:latest
  script:
    - npm install
  cache:
    untracked: true 
    key: npm  #static name, can use any branch, any commit, etc..
    paths:
      - node_modules
  only:  #Only execute this job when theres a change in package.json
    changes:
      - package.json

Если вам нужно прочитать это, чтобы правильно установить кэш в бегунах: https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching https://docs.gitlab.com/ee/ci/caching/

...