我正在使用cache
进行Gitlab管道的性能调整。
这是一个使用npm
进行依赖项管理的nodejs项目。我已将node_modules
文件夹放入缓存,以进行以下设置的后续阶段:
build:
stage: build
only:
- develop
script:
- npm install
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- node_modules/
我可以使高速缓存可用于下次触发的管道吗?还是可以在单个管道中访问缓存?
如果我可以在多个管道中访问它,那么仅在更改package.json时才可以重新缓存节点模块吗?
答案 0 :(得分:1)
首先,将缓存置于全局级别。这样可以确保作业共享相同的缓存。
第二,您可以使用GitLab 12.5附带的cache:key:files
仅在package.json更改时重新创建缓存。
cache:
key:
files:
- package.json
paths:
- node_modules/
build:
stage: build
only:
- develop
script:
- npm install
更多信息:
https://docs.gitlab.com/ee/ci/yaml/#cachekeyfiles
其他提示:
package-lock.json
而不是package.json
。npm install
文件夹之外,您还可以跳过此步骤,而不仅仅是添加node_modules
。如果node_modules文件夹不存在,则在nash安装之后执行bash之后仅会运行命令。build:
stage: build
only:
- develop
script:
- if [ ! -d "node_modules" ]; then npm install; fi