我正在使用GitLab CI进行项目开发,该过程的第一步是npm install
。为了以后相同作业更快地运行,我缓存了node_modules
,并将其定义为构建产物,以便在以后的阶段中使用它们。但是,即使我缓存了node_modules
并且更新到最新状态,每次运行install_packages
作业时调用npm install
都需要很长时间,因为该命令会遍历整个package.json
并检查包等是否有更新(我猜测)。
是否有任何方法可以根据某些条件仅在install_packages
作业中运行npm install
? 更具体地说(我认为这将是最好的解决方案),是不是自上次构建以来package.json
已更改?
以下是我.gitlab-ci.yml文件的相关部分:
image: node:6.9.1
stages:
- install
- prepare
- deploy
install_packages:
stage: install
script:
- npm prune
- npm install
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
artifacts:
paths:
- node_modules/
only:
- master
- develop
build_and_test:
stage: prepare
script:
#do_stuff...
deploy_production:
stage: deploy
#do_stuff...
deploy_staging:
stage: deploy
#do_stuff...
npm install --cache
不存在。你是说npm cache cli命令吗?我不确定如何在GitLab CI中使用它。 - jorundur