Continuous integration Gitlab管道:如何仅在依赖关系更改时重新缓存节点模块?
我正在使用Continuous integration Gitlab管道:如何仅在依赖关系更改时重新缓存节点模块?,continuous-integration,gitlab-ci,pipeline,Continuous Integration,Gitlab Ci,Pipeline,我正在使用cache对Gitlab管道进行性能调优 这是一个使用npm进行依赖关系管理的nodejs项目。我已使用以下设置将node\u modules文件夹放入后续阶段的缓存中: build: stage: build only: - develop script: - npm install cache: key: $CI_COMMIT_REF_SLUG paths: - node_modules/ 我可以为下次触发的管道设置缓
cache
对Gitlab管道进行性能调优
这是一个使用npm
进行依赖关系管理的nodejs项目。我已使用以下设置将node\u modules
文件夹放入后续阶段的缓存中:
build:
stage: build
only:
- develop
script:
- npm install
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- node_modules/
- 我可以为下次触发的管道设置缓存吗?或者缓存可以通过单个管道访问
- 如果我可以在多个管道中访问它,那么我是否可以仅在更改package.json时重新设置节点模块
cache:key:files
仅在package.json发生更改时重新创建缓存
cache:
key:
files:
- package.json
paths:
- node_modules/
build:
stage: build
only:
- develop
script:
- npm install
更多信息:其他提示:
- 您可能希望检查
而不是package lock.json
package.json
- 我建议您阅读,以确保不会遇到缓存可能无法恢复的常见问题
- 除了简单地添加
,当从缓存中重新创建npm安装
文件夹时,您还可以跳过此步骤。如果node_modules文件夹不存在,那么在将bash添加到npm安装之后,只会运行该命令node\u modules
当使用
npm-ci
时,默认情况下npm-ci
将清除node\u-modules
文件夹并重新开始。在使用npm-ci
时,有没有办法实现高效缓存?
build:
stage: build
only:
- develop
script:
- if [ ! -d "node_modules" ]; then npm install; fi