【发布时间】:2017-03-29 16:07:06
【问题描述】:
我正在将 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...
【问题讨论】:
标签: node.js npm gitlab npm-install gitlab-ci